Mvc 运行时错误 - 尚未启用角色管理器功能
本文关键字:角色 管理器 功能 启用 运行时错误 Mvc | 更新日期: 2023-09-27 18:34:55
我正在尝试手动实现基本的角色管理。当用户登录时,无论他们是否是管理员,他们都会被添加到角色中
我收到此错误:异常详细信息:系统.配置.提供程序.提供程序异常:尚未启用角色管理器功能。
这是导致错误的方法:
public void addUserToRole(String user, String role)
{
if (!Roles.RoleExists(role))
Roles.CreateRole(role);
Roles.AddUserToRole(user, role);
}
这是我的Web.config
<profile defaultProvider="DefaultProfileProvider">
<providers>
<add name="DefaultProfileProvider" type="System.Web.Providers.DefaultProfileProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=xxxxxxxxxxxxxxx" connectionStringName="DefaultConnection" applicationName="/" />
</providers>
</profile>
<membership defaultProvider="DefaultMembershipProvider">
<providers>
<add name="DefaultMembershipProvider" type="System.Web.Providers.DefaultMembershipProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=xxxxxxxxxxxxx" connectionStringName="DefaultConnection" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" />
</providers>
</membership>
<roleManager defaultProvider="DefaultRoleProvider">
<providers>
<add name="DefaultRoleProvider" type="System.Web.Providers.DefaultRoleProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=xxxxxxxxxxxxxx" connectionStringName="DefaultConnection" applicationName="/" />
</providers>
</roleManager>
<sessionState mode="InProc" customProvider="DefaultSessionProvider">
<providers>
<add name="DefaultSessionProvider" type="System.Web.Providers.DefaultSessionStateProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=xxxxxxxxxxxx" connectionStringName="DefaultConnection" />
</providers>
</sessionState>
我在谷歌上看到了许多答案,包括在web.conf中添加不同的角色属性,到目前为止没有运气
有人可以帮忙吗?
默认情况下,角色管理器处于禁用状态,因此您必须显式启用它:
<roleManager enabled="true" defaultProvider="DefaultRoleProvider">
我在 MVC 5 中尝试过这个,它起作用了:
<system.web>
<authentication mode="None" />
<compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5" />
<roleManager enabled="true" />
</system.web>
将上面显示的"roleManager"行添加到 web.config 后,我可以添加一个新角色并将用户添加到该角色,没有任何异常:
if (!Roles.RoleExists(_role))
Roles.CreateRole(_role);
if (!Roles.IsUserInRole(_username, _role))
Roles.AddUserToRole(_username, _role);
使用 DefaultRoleProvider 试试这个
<roleManager defaultProvider="DefaultRoleProvider" enabled ="true">