【问题标题】:Net core custom user property网络核心自定义用户属性
【发布时间】:2017-05-25 03:44:48
【问题描述】:

我在我的 .NET Core 项目中使用默认授权。我想检查一个用户是否是管理员,所以在 ApplicationUser.cs 模型中我添加了这个:

 public class ApplicationUser : IdentityUser
{

    public bool admin { get; set; }
}

我将这些更改迁移到我的 SQL 数据库中,我可以在 AspNetUsers 表中看到“admin”属性。如何检查当前登录用户的“管理员”属性?

【问题讨论】:

    标签: asp.net model-view-controller asp.net-core


    【解决方案1】:

    我同意 Peter 的上述回答,即仅使用 user 变量并检查 user.admin,但是,我强烈建议扩展您的项目以使用简单的基于角色的授权以从长远来看简化事情。您可以通过以下文档实现此目的:https://docs.microsoft.com/en-us/aspnet/core/security/authorization/roles

    【讨论】:

      【解决方案2】:

      您可以通过UserManager<T> 对象访问当前用户实例,该对象可以作为构造函数参数注入到您的控制器中。方法GetUserAsync 采用ClaimsPrincipal,在本例中是HttpContext 的用户。

      private readonly UserManager<ApplicationUser> _userManager;
      public HomeController(UserManager<ApplicationUser> userManager) {
          _userManager = userManager;
      
          var user = _userManager.GetUserAsync(HttpContext.User);
      }
      

      【讨论】:

        猜你喜欢
        • 2020-07-21
        • 2017-12-16
        • 2017-05-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多