C# Mvc运行时错误-尚未启用角色管理器功能
我正在尝试手动实现基本角色管理。当用户登录时,无论他们是否是管理员,都会将其添加到角色中 我收到以下错误:异常详细信息:System.Configuration.Provider.ProviderException:角色管理器功能尚未启用。 这是导致错误的方法:C# Mvc运行时错误-尚未启用角色管理器功能,c#,asp.net-mvc,roles,C#,Asp.net Mvc,Roles,我正在尝试手动实现基本角色管理。当用户登录时,无论他们是否是管理员,都会将其添加到角色中 我收到以下错误:异常详细信息:System.Configuration.Provider.ProviderException:角色管理器功能尚未启用。 这是导致错误的方法: public void addUserToRole(String user, String role) { if (!Roles.RoleExists(role))
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>
我在google上看到了很多答案,包括在web.conf中添加不同的角色属性,但到目前为止还没有找到
有人能帮忙吗?默认情况下,角色管理器处于禁用状态,因此您必须明确启用它:
<roleManager enabled="true" defaultProvider="DefaultRoleProvider">
使用您的DefaultRoleProvider尝试以下操作
<roleManager defaultProvider="DefaultRoleProvider" enabled ="true">
我在MVC 5中尝试了这一点,效果很好:
<system.web>
<authentication mode="None" />
<compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5" />
<roleManager enabled="true" />
</system.web>
然后我就得到了
找不到默认角色提供程序
。(MVC 5)如果您在MVC 4项目中遇到此问题,请尝试以下方法。在我剪切粘贴整个块后为我工作。是的,这是正确的。事实上,OWIN处理身份验证,所以不用担心再也没有表单身份验证了。我需要将enabled=“true”
子句添加到我当前项目中的rolemanger
元素中——但我检查了我以前的项目,而该项目没有此子句。仔细想想。我得到了错误:无法连接到SQL Server数据库。DefaultRoleProvider不存在!
if (!Roles.RoleExists(_role))
Roles.CreateRole(_role);
if (!Roles.IsUserInRole(_username, _role))
Roles.AddUserToRole(_username, _role);