在ASP.NET 5 Identity 3.0中创建自定义角色处理(不带EF)

在ASP.NET 5 Identity 3.0中创建自定义角色处理(不带EF),asp.net,asp.net-mvc,asp.net-core,asp.net-core-mvc,asp.net-identity-3,Asp.net,Asp.net Mvc,Asp.net Core,Asp.net Core Mvc,Asp.net Identity 3,我已经成功地创建了一个简单的MVC6应用程序,它使用我自己的ApplicationUser、ApplicationUserStore(实现IUserStore和IUserPasswordStore)和ApplicationUserManager(扩展UserManager)。登录现在可以正常工作了。现在,我确实希望扩展我的项目以支持控制器中的注释,如下所示: [Authorize(Roles = "TestRole")] public IActionResult Trips() { ...

我已经成功地创建了一个简单的MVC6应用程序,它使用我自己的ApplicationUser、ApplicationUserStore(实现IUserStore和IUserPasswordStore)和ApplicationUserManager(扩展UserManager)。登录现在可以正常工作了。现在,我确实希望扩展我的项目以支持控制器中的注释,如下所示:

[Authorize(Roles = "TestRole")]
public IActionResult Trips()
{
  ...
}
因此,我还创建了自己的ApplicationRole、ApplicationRoleManager和ApplicationRoleStore,并在我的启动中注册了它们:

    services.AddIdentity<ApplicationUser, ApplicationRole>(config =>
    {
        config.User.RequireUniqueEmail = true;
        config.Password.RequiredLength = 8;
        config.Cookies.ApplicationCookie.LoginPath = "/Auth/Login";
        config.Cookies.ApplicationCookie.AutomaticAuthenticate = true;
    }).AddUserStore<ApplicationUserStore<ApplicationUser>>()
    .AddRoleStore<ApplicationRoleStore<ApplicationRole>>()
    .AddUserManager<ApplicationUserManager>()
    .AddRoleManager<ApplicationRoleManager>(); 
services.AddIdentity(配置=>
{
config.User.RequireUniqueEmail=true;
config.Password.RequiredLength=8;
config.Cookies.applicationcokie.LoginPath=“/Auth/Login”;
config.Cookies.applicationcokie.AutomaticAuthenticate=true;
}).AddUserStore()
.AddRoleStore()
.AddUserManager()
.AddRoleManager();
我现在的问题是注释根本不起作用。实际上,我希望我的应用程序rolestore中的Roles方法(来自IQueryableRoleStore)会被触发

我是否错过了绑定的某个地方,或者我对身份/角色概念的理解完全错误?

授权属性:

[Authorize(Roles = "TestRole")]
public IActionResult Trips()
{
  ...
}
不会调用任何身份信息。它只检查当前用户是否在角色“TestRole”中,并且仅在用户在角色中时才允许访问。这将是对角色cookie的检查

您仍然需要构建自己的UI来管理角色成员资格,从角色中添加或删除用户,以便将该角色放入用户的cookie中


如果您需要更多的想法,我有一个项目,该项目实施了角色管理以及没有实体框架的标识

谢谢Joe。“对照角色cookie检查”是什么意思?这张支票的代码在哪里?由于我的用户不需要他们自己的角色,我实际上不需要管理角色的UI。我可以接受一套硬编码的固定角色。现在我将详细检查我们的项目。嗨,马可!你能打电话给我吗dawidr@epoczta.pl? 我有一些关于在ASP.NET5中实现角色和自定义身份用户的问题。