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