ASPNET角色提供商踢,它不应该是 [英] AspNet Role provider kicking in and it shouldn't be
问题描述
我得到这个错误:
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屋!