ASP.Net MVC SimpleMembershipProvider和使用角色

Mar*_*ark 0 c# asp.net asp.net-mvc asp.net-mvc-3

我想[Authorize]用我的控制器操作,只让特定角色的选定人员访问控制器.

例:

[Authorize(Roles = "Admin, User")]
Run Code Online (Sandbox Code Playgroud)

在此之前ASP.Net 4,我可以添加这样的角色:

 if (!Roles.RoleExists("Admin"))
 {
      Roles.CreateRole("Admin");
 }
Run Code Online (Sandbox Code Playgroud)

上面的代码不会将角色添加到Roles表中.

但是,现在我只有以下表格:

UserProfile
webpages_Membership
webpages_OAuthMembership
webpages_Roles
webpages_UsersInRoles
Run Code Online (Sandbox Code Playgroud)

我得到了UserProfile表,但仍然想使用Roles.我现在是否必须编写自己的查询以在上表中添加角色,以及如何使用角色,并让它们链接到[Authorize(Roles = "Admin, User")]控制器上?

谢谢.

Jam*_*mes 5

你仍然可以这样做,只需使用提供商.

 var rolesProvider = (SimpleRoleProvider)Roles.Provider;
 if (!rolesProvider.RoleExists("Admin"))
 {
     rolesProvider.CreateRole("Admin");
 }
Run Code Online (Sandbox Code Playgroud)

你使用它们的方式没有改变.你写的东西会好起来的

 [Authorize(Roles = "Admin, User")]
Run Code Online (Sandbox Code Playgroud)