未启用角色管理器.即使在更改 web.config 之后

本文关键字:web config 之后 启用 角色 管理器 | 更新日期: 2023-09-27 17:56:34

我已经在web.config中启用了角色管理器,但仍然收到错误:

System.Configuration.Provider.ProviderException : 尚未启用角色管理器功能。

我正在使用 nunit,这是我的测试方法

[Test]
public void DownloadbloombergTest()
{
    if (!Roles.RoleExists("Admin"))
        Roles.CreateRole("Admin");
    if (!Roles.IsUserInRole(WebSecurity.CurrentUserName, "Admin"))
        Roles.AddUserToRole(WebSecurity.CurrentUserName, "Admin");    
    var controller = new DownloadBloombergController();
    var result = controller.DownloadBloomberg() as ViewResult;           
    Assert.IsInstanceOf<ViewResult>(result);
}

这是我的 web.config

...
<system.web>

     <membership defaultProvider="SimpleMembershipProvider">
      <providers>
        <clear />
        <add name="SimpleMembershipProvider" type="WebMatrix.WebData.SimpleMembershipProvider, WebMatrix.WebData" />
      </providers>
    </membership>
    <roleManager enabled="true" defaultProvider="SimpleRoleProvider">
      <providers>
        <clear />
        <add name="SimpleRoleProvider" type="WebMatrix.WebData.SimpleRoleProvider, WebMatrix.WebData" />
      </providers>
    </roleManager>

    <customErrors mode="Off" />
    <compilation debug="true" targetFramework="4.5" />
    <httpRuntime targetFramework="4.5" />
    <authentication mode="Forms">
      <forms loginUrl="~/Login/Login" timeout="2880" />
    </authentication>
    <pages>
      <namespaces>
        <add namespace="System.Web.Helpers" />
        <add namespace="System.Web.Mvc" />
        <add namespace="System.Web.Mvc.Ajax" />
        <add namespace="System.Web.Mvc.Html" />
        <add namespace="System.Web.Optimization" />
        <add namespace="System.Web.Routing" />
        <add namespace="System.Web.WebPages" />
      </namespaces>
    </pages>
  </system.web>
...

nunit 指向该行(方法的开头)

 if (!Roles.RoleExists("Admin"))

未启用角色管理器.即使在更改 web.config 之后

将 Web.config 文件复制到测试类库并将其重命名为 app.config 解决了问题