Jas*_*ent 6 c# asp.net-mvc-5 role-manager
我在MVC5(VS2013)中使用授权/角色时遇到了麻烦.
身份验证几乎可以开箱即用(也就是说只需使用Visual Studio创建默认的MVC项目).我将DefaultConnection
连接字符串更改为有效(但不存在)的数据库.然后我注册一个新的用户和数据库被自动创建,以表,如AspNetUsers
和AspNetRoles
.
但是,我似乎无法对角色做任何事情.要做的第一件事似乎是使用C#代码添加角色,例如:
Roles.CreateRole("Admin");
Run Code Online (Sandbox Code Playgroud)
我收到一条消息的异常:
"尚未启用角色管理器功能."
我在web.config中使用以下命令启用它:
<roleManager enabled="true"/>
Run Code Online (Sandbox Code Playgroud)
现在得到例外:
"无法连接到SQL Server数据库."
这曾经非常容易使用System.Web.Security.SqlRoleProvider
,但不适用于MVC5默认的新提供程序.关于这一点有很多非常复杂的文章,但在我看来,它是如此必要和直接的东西,必须有一个简单的方法来使它工作.
非常感谢任何帮助.
我现在已经解决了这个问题.事实证明,Roles类与MVC5中的角色管理完全无关,至少在开箱即用的配置方面如此.
Roles类和Membership类仍然存在,Provider配置为SqlMembershipProvider
.
但是,这不是使用的提供者AccountController
,它根本不使用Membership类; 它使用Microsoft.AspNet.Identity.UserManager
.
虽然生成的AccountController
提供了大量使用示例UserManager
,但它与角色无关.
角色的等价类是Microsoft.AspNet.Identity.RoleManager
.MSDN中有完整的文档
归档时间: |
|
查看次数: |
5631 次 |
最近记录: |