2017-04-12 106 views
0

的身份角色的经理,我很新的MVC(如这是我的第一个项目在它的工作,我很抱歉,对任何误导或不良的解释),我不完全理解如何制作用户角色。我知道这里有很多这些问题,但他们都没有能够帮助我理解角色经理。如何实现MVC

我使用ASP NET的身份让我的用户,编辑,整个交易。我有我的数据库中的所有身份生成表及其所有关系。现在,我可以创建用户,但我不知道如何获得这些用户角色。

我认为角色只是Account模型/控制器的一部分,就像登录和注册一样,我只需要修改几行代码就可以在我的项目中使用我自己的db。但我几乎找不到任何提及角色的代码文件。任何我通过Google看到的东西都只是飞过了我的脑海(也就是说,自从代码第一,播种的东西对于我来说,作为一个被接纳的新手和一些添加了数据库并在Visual Studio中使用代码优先的生成器)

在帐户或标识文件控制器/模型中是否存在需要修改或写入的内容,或者这就像为我自己的表创建CRUD操作,我根据自己的模型制作控制器并添加角色?

我正在使用身份2.0与MVC 4.5。先谢谢您的帮助!

---- ------编辑

我做了一堆更多的谷歌搜索,我想,当我做我的项目,我没有给后面的代码为RoleController或ApplicationRoleManager等这是正常的还是我设置错了?

回答

0

我设法找出我的问题,有很多的尝试到c#转换成VB这里,我们走!

我结束了我的角色到我的数据库。在startup.vb ---在根目录下未views目录---写:

Imports Owin 
Imports Microsoft.Owin 
Imports Microsoft.AspNet.Identity 
Imports Microsoft.AspNet.Identity.EntityFramework 

<Assembly: OwinStartupAttribute(GetType(Startup))> 

Partial Public Class Startup 
    Public Sub Configuration(app As IAppBuilder) 
     ConfigureAuth(app) 
     createRoles() 
    End Sub 

    Private Sub createRoles() 
     Dim UserManager As New UserManager(Of ApplicationUser)(New UserStore(Of ApplicationUser)(New ApplicationDbContext)) 
     Dim RoleManager As New RoleManager(Of IdentityRole)(New RoleStore(Of IdentityRole)(New ApplicationDbContext)) 
     Dim role = New IdentityRole() 

     If Not RoleManager.RoleExists("Administration") Then 
      role.Name = "Administration" 
      RoleManager.Create(role) 

      UserManager.AddToRole("user id", "Administration") 

     End If 

     If Not RoleManager.RoleExists("User") Then 
      role.Name = "User" 
      RoleManager.Create(role) 

      UserManager.AddToRole("user Id", "User") 
     End If 
    End Sub 
End Class 

我一个新的子过程中添加到我的启动类来创建我的角色(管理和用户) 。另外,Identity和Identity.EntityFramework的两个导入需要添加到文件中才能使用。

在createRoles子,我们需要定义一个新的UserManager(给角色添加到用户)和RoleManager(将角色添加到数据库)。在两个管理器内部,'ApplicationDbContext'将被您的DbContext(它在Model文件夹中的IdentityModel中找到)替换。之后,我们需要添加一个新的IdentityRole对象,也可以添加一个角色。

接下来,我们检查,如果有一定的作用存在“管理”,它不存在,所以我们的角色对象添加一个名称,并使用RoleManager创建它。由于我的数据库中已有用户,因此可以使用UserManager为用户添加角色。我从数据库中抓取了我的用户标识,然后写入该角色的名称。

我,因为我要添加“用户”其他角色再次做到这一点。建立项目和volia!您可以将具有角色的用户应用到现在您可以将这些角色应用于您的页面控制器,以便仅通过“管理”或“用户”访问页面。

我注释掉调用该函数后,我跑了它,所以它不会把它每次构建,但由于这些角色的存在,不会增加了

您可以将这些角色添加到您的网页在您的控制器像这样:

<Authorize(Roles:="Administration")> 
Public Function yourPage() as ActionResult 
    Return View() 
End Function 

<Authorize(Roles:="Administration, User")> 
Public Function yourPage2() as ActionResult 
    Return View() 
End Function 

我希望这可以帮助别人在未来!