• ResourceOwnerPassword模式使用数据库.


    有时候, ResourceOwnerPassword模式有用的, 可以用来代替我们原来管理程序的开发方式.

    因为管理程序本身拥有用户数据的权限嘛, 并不是第三方应用, 无需要授权

    集成很简单.

    1. 添加ResourceOwnPasswordValidator验证程序

    public class ResourceOwnerPasswordValidator : IResourceOwnerPasswordValidator
        {
            public ResourceOwnerPasswordValidator()
            {
    
            }
    
            public Task ValidateAsync(ResourceOwnerPasswordValidationContext context)
            {
                //根据context.UserName和context.Password与数据库的数据做校验,判断是否合法
                if (context.UserName == "jian1" && context.Password == "j1")
                {
                    context.Result = new GrantValidationResult(
                     subject: context.UserName,
                     authenticationMethod:  OidcConstants.AuthenticationMethods.Password);
                }
                //else
                //{
    
                //    //验证失败
                //    context.Result = new GrantValidationResult(
                //        TokenRequestErrors.InvalidGrant, 
                //        "invalid custom credential",
                //        );
                //}
                return Task.FromResult(0);
            }
             
        }

    2. 注册IdentityServer的时候注入这个验证程序

    // 使用内存存储,密钥,客户端和资源来配置身份服务器。 测试环境
                services.AddIdentityServer()
                    .AddDeveloperSigningCredential()
                    .AddInMemoryApiResources(AuthorizationConfig.ApiResources())
                    .AddInMemoryClients(AuthorizationConfig.Clients())
                    .AddInMemoryIdentityResources(AuthorizationConfig.GetIdentityResources()) 
                    //添加自定义的ResourceOwnValidator验证程序
                    
    .AddResourceOwnerValidator<Models.ResourceOwnerPasswordValidator>()
    
                    .AddProfileService<Services.ProfileService>();
  • 相关阅读:
    第二十天笔记
    第十九天笔记
    第十七天笔记
    第十五天笔记
    第十六天笔记
    第十二天笔记
    数字三角形
    最大子段和与最大子矩阵和
    分组背包
    二维背包
  • 原文地址:https://www.cnblogs.com/jianjialin/p/9326503.html
Copyright © 2020-2023  润新知