zoukankan      html  css  js  c++  java
  • 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的机制有关系

  • 相关阅读:
    c# 创建多线程
    使用opencvsharp通过mvvm在image中显示图片
    c# 创建文件/文件夹对话框
    wpf MVVM框架基础
    wpf DataBinding
    layui自动点击下拉列表的一项并选中
    LayUI默认样式调整
    mysql取某个组的前n条数据
    Kali3.0系统切换中文
    JS触发某元素周围元素的样式改变
  • 原文地址:https://www.cnblogs.com/Blog-JJ/p/11337971.html
Copyright © 2011-2022 走看看