ASPNET角色提供商踢,它不应该是 [英] AspNet Role provider kicking in and it shouldn't be

查看:106
本文介绍了ASPNET角色提供商踢,它不应该是的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我得到这个错误:

Line 246:       <roleManager>
Line 247:           <providers>
Line 248:               <add name="AspNetSqlRoleProvider"     connectionStringName="LocalSqlServer" applicationName="/"  type="System.Web.Security.SqlRoleProvider, System.Web, Version=4.0.0.0, Culture=neutral,     PublicKeyToken=b03f5f7f11d50a3a"/>
Line 249:               <add name="AspNetWindowsTokenRoleProvider" applicationName="/" type="System.Web.Security.WindowsTokenRoleProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
Line 250:           </providers>

Source File: C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\machine.config    Line: 248 

不过,由于我们没有使用aspnetroleprovider它不应该是。但它在machine.config。其它网站没有这个问题。可能是什么使得它拿起aspnetsqlroleprovider?

However, it shouldn't be as we're not using the aspnetroleprovider. But it's in the machine.config. Other sites don't have this problem. What could be making it pick up the aspnetsqlroleprovider?

推荐答案

修复

与值应用程序设置添加 enableSimpleMembership 你的的web.config

add enableSimpleMembership with value false app setting to your web.config.

事业
    
        
            
        
    

cause

<roleManager enabled="false" />

将导致 Roles.Enabled 标志被设置为,符合市场预期,

will cause Roles.Enabled flag to be set to false, as expected,

有WebMatrix.WebData.WebSecurity,上面写着:

but there is 'WebMatrix.WebData.WebSecurity' that says:

internal static void PreAppStartInit()
{
  if (!ConfigUtil.SimpleMembershipEnabled)
    return;
  ...
  Roles.Enabled = true;
  const string BuiltInRolesProviderName = "AspNetSqlRoleProvider";
  var builtInRoles = Roles.Providers[BuiltInRolesProviderName];
  if (builtInRoles != null)
  {
      var simpleRoles = CreateDefaultSimpleRoleProvider(BuiltInRolesProviderName, currentDefault: builtInRoles);
      Roles.Providers.Remove(BuiltInRolesProviderName);
      Roles.Providers.Add(simpleRoles);
  }
  ...
}

这将覆盖roleManager设置(前RoleManager模块是执行此code),包括添加AspNetSqlRoleProvider

this will override roleManager setting (this code is executed before RoleManager module is), including adding AspNetSqlRoleProvider

禁用'SimpleMembership'你可以添加应用程序设置 enableSimpleMembership 值=FALSE(web.config中):

to disable 'SimpleMembership' you can add app setting enableSimpleMembership with value="false" (web.config):

<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
    <appSettings>
        <add key="enableSimpleMembership" value="false" />
    </appSettings>
</configuration>

这是重新配置这将为prevent WebMatrix的 RoleManager

this will prevent webmatrix from reconfiguring RoleManager.

这篇关于ASPNET角色提供商踢,它不应该是的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆