zoukankan      html  css  js  c++  java
  • 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>();
  • 相关阅读:
    4、redis之使用commons-pool
    好用的eclipse properties插件
    1、redis之安装与配置
    谷歌浏览器禁止window.close的问题
    在浏览器中使用JS打开并展示PDF文件
    JAVA遍历Map的方法
    GEOS库学习之三:空间关系、DE-9IM和谓词
    GEOS库的学习之二:简单几何图形的创建
    GEOS库的学习之一:介绍和编译
    GEOS库在windows中的编译和测试(vs2012)
  • 原文地址:https://www.cnblogs.com/jianjialin/p/9326503.html
Copyright © 2011-2022 走看看