【问题标题】:The Role Manager feature has not been enabled but its enabled in config角色管理器功能尚未启用,但已在配置中启用
【发布时间】:2013-08-25 20:28:42
【问题描述】:

我在我的 Web 项目中名为 providers 的文件夹中为自定义角色提供者创建了以下类:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace Project.Providers
{
  public class MyCustomRoleProvider : System.Web.Security.SqlRoleProvider
  {
    public override string[] GetRolesForUser(string username)
    {
        string[] currentUserRoles = { "Admin", "User" };
        return currentUserRoles;
    }
  }
}

我在 web.config 中添加了以下部分:

<roleManager enabled="true" defaultProvider="DefaultRoleProvider">
    <providers>
      <add name="DefaultRoleProvider" type="Project.Provider.MyCustomRoleProvider, MetaLearning"/>
    </providers>
  </roleManager>

当我尝试在我的家庭控制器上添加以下代码时:

Roles.AddUserToRole("username","role");

我收到角色管理器功能尚未启用的错误消息。我做错了什么?

【问题讨论】:

  • 你有没有试过把 放在你的 标签之前,clear 元素用于清除之前为这个应用程序存储的所有提供者,例如默认提供者。
  • 是的,我使用了 clear 元素,但这仍然告诉我角色管理器功能未启用
  • 我已经尝试过你所做的同样的事情并且它有效,但我必须在提供程序添加中提供一个 connectionStringName 属性。只有当我注释掉完整的 roleManager 部分时,我才会得到同样的错误。你确定它在 system.web 标签中吗?你确定正在使用 web.config 吗?
  • 您必须为提供者添加什么 connectionStringName?
  • 当我省略 connectionStringName 时,我会在运行时收到配置错误,如果您不明白我的猜测是您的角色管理器配置部分根本没有被拾取......我的连接字符串名称案例是一个指向 aspnetdb 数据库的案例。您能否仔细检查或发布您的完整配置。

标签: asp.net-mvc-4 roles roleprovider


【解决方案1】:

有时我们的项目中有两个 web.config 文件。就像在 MVC4 互联网应用程序项目中一样,一个属于 views 文件夹这不是您的应用程序的配置文件。它包含使视图与 ASP.NET 一起工作所需的配置。 确保在正确的 web.config 文件中实现您的要求。

【讨论】:

    猜你喜欢
    • 2011-04-21
    • 1970-01-01
    • 1970-01-01
    • 2019-04-21
    • 2014-05-10
    • 2013-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多