我有一个简单的网站,其中一个 aspx 页面 ( Test.aspx
) 显示 Roles.Enabled
在 Web.config
中设置为 false 的值(属性 roleManager@enabled
)。
测试.aspx:
<%@ Page Language="C#" %>
<%= Roles.Enabled %>
Web.config:
<?xml version="1.0"?>
<configuration>
<system.web>
<roleManager enabled="false" />
</system.web>
</configuration>
这个输出:
False
这是预期的。
但是,当我添加另一个文件( Razor 页面)时,例如Test.cshtml
(0 B)里面没有内容,aspx页面突然输出:
True
即使我从网站上删除了 razor 页面,输出也没有改变。我必须回收应用程序池,然后它再次输出 False
(预期结果)。
MVC 模块/处理程序工厂似乎出于某种未知原因更改了值。
我如何告诉 MVC 运行时不要这样做?
最佳答案
开启简单成员(member)的关键是AppSetting enableSimpleMembership
(默认是true
?)。
显然,当 MVC 项目启动时,例程会检查此设置是否设置为 false
。如果不是SimpleMembershipProvider
已应用 - 或 ASP.NET 尝试 - 不知何故 like this .
要禁用此行为,请将其设置为 false
。
<appSettings>
<add key="enableSimpleMembership" value="false" />
</appSettings>
我在 PreApplicationStartCode
中找到了这条评论WebMatrix 的。我想大多数 MVC 版本都有类似的行为。
To use the SimpleMembershipProvider and WebSecurity classes for an ASP.NET Web Pages website, set enableSimpleMembership to true in the appSetting section of the Web.config file. (Alternatively, leave enableSimpleMembership out of the Web.config file, because enableSimpleMembership defaults to true.) When simple membership is enabled, SimpleMembershipProvider replaces SqlMembershipProvider, but is not invoked until it is initialized by a call to the InitializeDatabaseConnection() method.
关于c# - Roles.Enabled 为 true,即使 roleManger.enabled 设置为 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12402346/