【问题标题】:Roles.Enabled is true even if roleManger.enabled is set to false即使将 roleManger.enabled 设置为 false,Roles.Enabled 也为 true
【发布时间】:2012-09-13 08:31:53
【问题描述】:

我有一个简单的网站,其中一个 aspx 页面 (Test.aspx) 显示 Roles.Enabled 值,该值在 Web.config(属性 roleManager@enabled)中设置为 false。

Test.aspx:

<%@ Page Language="C#" %>
<%= Roles.Enabled %>

Web.config:

<?xml version="1.0"?>
<configuration>
    <system.web>
      <roleManager enabled="false" />
    </system.web>
</configuration>

这个输出:

错误

这是预期的。

但是,当我添加另一个文件(剃须刀页面)时,例如Test.cshtml里面没有内容(0 B),aspx页面突然输出:

是的

即使我从站点中删除剃刀页面,输出也不会改变。我必须回收应用程序池,然后它再次输出False(预期结果)。

MVC 模块/处理程序工厂似乎出于某种未知原因更改了值。

我如何告诉 MVC 运行时不要这样做?

【问题讨论】:

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


    【解决方案1】:

    开启简单会员的关键是AppSetting enableSimpleMembership(默认是true?)。

    显然,当 MVC 项目启动时,例程会检查此设置是否设置为 false。如果不是,则应用 SimpleMembershipProvider - 或 ASP.NET 尝试 - 以某种方式使用 like this

    要禁用此行为,请将其设置为 false

    <appSettings>
      <add key="enableSimpleMembership" value="false" />
    </appSettings>
    

    我在 WebMatrix 的PreApplicationStartCode 中发现了这句话。我猜大多数 MVC 版本都有类似的行为。

    使用 SimpleMembershipProvider 和 WebSecurity 类 ASP.NET Web Pages 网站,将 enableSimpleMembership 设置为 true Web.config 文件的 appSetting 部分。 (或者,离开 enableSimpleMembership 退出 Web.config 文件,因为 enableSimpleMembership 默认为 true。)当简单成员资格是 启用,SimpleMembershipProvider 替换 SqlMembershipProvider,但是 直到通过调用 InitializeDatabaseConnection() 方法。

    【讨论】:

      【解决方案2】:

      尝试设置此键。基本上 simplemembership 正在打开,这就是启用角色的原因

      【讨论】:

        猜你喜欢
        • 2017-10-25
        • 2018-02-02
        • 1970-01-01
        • 2020-11-14
        • 2014-12-18
        • 1970-01-01
        • 2020-07-16
        • 2020-07-09
        • 1970-01-01
        相关资源
        最近更新 更多