c# - Roles.Enabled 为 true,即使 roleManger.enabled 设置为 false

标签 c# asp.net .net asp.net-mvc asp.net-membership

我有一个简单的网站,其中一个 aspx 页面 ( Test.aspx ) 显示 Roles.EnabledWeb.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/

相关文章:

java - Thrift TSimpleServer 在多次成功请求后变得无响应

c# - 如何在 ASP.NET 中处理 KeyPress 或 KeyDown 事件?

asp.net - 使用 JavaScript 验证文件大小

c# - 在用户控件上更改运行时 UI 的最佳方法?

c# - 在 Entity Framework Core 中获取具有导航属性的实体的正确方法是什么?

c# - 关闭 .Net winforms 应用程序并删除可执行文件的最佳方法是什么

c# - FakeItEasy 抛出 ExpectationException

c# - 使用 Clipper 库的平行线

c# - 使用 SWTableViewCell 的表格单元格滑动菜单

c# - 静态绑定(bind)期间 C++ 和 Ada 的差异