小编mik*_*-so的帖子

将UserManager传递给ConfigureServices MVC 6中的AuthorizationHandler

给出以下用于UserManager的DI类

public class AccountAuthorizationHandler : AuthorizationHandler<OperationAuthorizationRequirement, AuthorisedAccount>
{
    private readonly UserManager<ApplicationUser> userManager;
    public AccountAuthorizationHandler(UserManager<ApplicationUser> userManager)
    {
        this.userManager = userManager;
    }
    protected override void Handle(AuthorizationContext context,
                                   OperationAuthorizationRequirement requirement,
                                   AuthorisedAccount resource)
    {
        // Pull the user ID claim out from the context.User
        var userId = context.User.GetUserId();
        // Get the current user's account numbers.       
        var user = userManager.Users
            .Include(u => u.AuthorisedAccounts)
            .Where(u => u.Id == userId)
            .FirstOrDefault();

        //Now check if the user's account numbers match the resource accountNumber, and 
        foreach( var authorizedAccount in …
Run Code Online (Sandbox Code Playgroud)

authorization dependency-injection asp.net-core-mvc

4
推荐指数
1
解决办法
1465
查看次数