簡體   English   中英

在ASP.NET 5 Identity 3.0(無EF)中創建自定義角色處理

[英]Create custom role handling in ASP.NET 5 Identity 3.0 (without EF)

我已經成功創建了一個簡單的MVC 6應用程序,該應用程序使用了我自己的ApplicationUser,一個ApplicationUserStore(實現IUserStore和IUserPasswordStore)和ApplicationUserManager(擴展了UserManager)。 現在登錄可以正常工作。 現在,我確實想擴展項目以在控制器中支持注釋,如下所示:

[Authorize(Roles = "TestRole")]
public IActionResult Trips()
{
  ...
}

因此,我還創建了自己的ApplicationRole,ApplicationRoleManager,ApplicationRoleStore並將它們注冊到我的Startup中:

    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>(); 

我的問題是,注釋根本不起作用。 實際上,我希望可以觸發我的ApplicationRoleStore中的Roles方法(來自IQueryableRoleStore)。

我會錯過綁定的地方還是對身份/角色概念有完全錯誤的想法?

授權屬性:

[Authorize(Roles = "TestRole")]
public IActionResult Trips()
{
  ...
}

不會調用任何身份信息。 它將僅檢查當前用戶是否具有“ TestRole”角色,並且僅當該用戶具有該角色時才允許訪問。 這將是對角色Cookie的檢查。

您仍然需要構建自己的UI來管理角色成員身份,並添加從角色中刪除用戶的功能,以便將該角色添加到用戶的Cookie中。

如果您需要更多想法,我在這里有一個項目,該項目已實現角色管理以及無需實體框架的身份

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM