IdentityServer4搭建和使用


1.NuGet引用 

IdentityServer4.AccessTokenValidation

2.Startup.cs注册

services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
             .AddCookie(options =>
             {
                 options.ExpireTimeSpan = TimeSpan.FromMinutes(60); //到期时间
                 options.Cookie.Name = "lym.Cookies";  //名称

             });

3.注册中件间

app.UseAuthentication();

4.使用细节

var identity = new ClaimsIdentity(CookieAuthenticationDefaults.AuthenticationScheme);//获取实例
            identity.AddClaim(new Claim(ClaimTypes.Sid, "Sid"));//添加 
            identity.AddClaim(new Claim(ClaimTypes.Name, "Name"));//添加 
            await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, new ClaimsPrincipal(identity));//保存
            await HttpContext.SignOutAsync();//删除 var sid = HttpContext.User.Claims.SingleOrDefault(s => s.Type == ClaimTypes.Sid);//获取值 var name = HttpContext.User.Claims.SingleOrDefault(s => s.Type == ClaimTypes.Name);

 5.注意:必须执行一个完整的页面才可以,也就是说执行完登陆代码之后,在另外的页面获取HttpContext.User.Claims才可以获取到,比如我们设置一个cookies或者session,设置完成之后紧接着代码就可以获取到这个值,但是HttpContext不同,必须完成一个完整的请求之后,才可以获取到新的值,这可能跟HttpContext的机制有关系


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM