zoukankan      html  css  js  c++  java
  • AspNet Core 认证

    一 Cookie认证

    1  services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme).AddCookie();

    2  app.UseAuthentication();

    3 Microsoft.AspNetCore.Authorization.AuthorizeAttribute

    var claims = new List<Claim>()
    {
    new Claim (ClaimTypes.Role,"admin"),
    new Claim (ClaimTypes.Name,account),
    };

    var identity = new ClaimsIdentity(claims, CookieAuthenticationDefaults.AuthenticationScheme);
    this.HttpContext.SignInAsync(new ClaimsPrincipal(identity));

    二 Jwt认证

    services.AddAuthentication(option =>
    {
    option.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
    option.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
    }).AddJwtBearer(o =>
    {
    o.TokenValidationParameters = new Microsoft.IdentityModel.Tokens.TokenValidationParameters
    {
    ValidIssuer = settings.Issurer,
    ValidAudience = settings.Audience,
    IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(settings.SecretKey)),
    };
    });

    2  app.UseAuthentication();

    3  Microsoft.AspNetCore.Authorization.AuthorizeAttribute

    var claims = new List<Claim>
    {
    new Claim(ClaimTypes.Name,"yan"),
    new Claim (ClaimTypes.Role,"admin"),
    };

    var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes("SecretKey"));

    var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);

    var token = new JwtSecurityToken("Issurer", "Audience", claims, DateTime.Now, DateTime.Now.AddMinutes(30), creds);

    return Ok(new
    {
    token = new JwtSecurityTokenHandler().WriteToken(token),
    });
    }

    5 header中添加 Authorization : bearer 获得的token

  • 相关阅读:
    pdo连接的时候设置字符编码是这样的
    mysql8.0+修改用户密码
    mysql账户添加远程访问
    php中的动态变量的一个应用
    redis scan迭代模糊匹配
    限制用户频繁提交
    js判断checkbox是否选中
    mysql 分组取每个组的前几名的问题
    Yii框架和Vue的完美结合构建前后端分离项目
    JS发送跨域Post请求出现两次请求的解决办法
  • 原文地址:https://www.cnblogs.com/a121984376/p/10019838.html
Copyright © 2011-2022 走看看