zoukankan      html  css  js  c++  java
  • ASP.NET Core学习之七 认证授权

    简介

    一直以来都是使用identity来做验证,因为ABP已经集成好的,但到了.NET CORE 3.0后一直想去改变引用.net 版本的identity问题,使用的是.NET FRAMWORK 4.6,本文就是为了脱离identity而写的

    问题解析

    使用ABP的时候,登录的时候,使用的是identity的UserManager.CreateIdentityAsyn来创建,ABP的AbpSession调用的是从这里拿到userId的,所以想要扩展AbpSession,需要由自己定义才能实现

    登陆

    使用官方CookieAuthentication身份验证Web程序

    startup

    public IServiceProvider ConfigureServices(IServiceCollection services)
    {
        services.AddAuthentication(options =>
        {
            options.DefaultScheme = "Cookies";
        }).AddCookie();
    }
    
    
    public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory)
    {
        app.UseAuthentication(); 
    }
    

    ClaimsIdentity

     var claimsIdentity = new ClaimsIdentity(CookieAuthenticationDefaults.AuthenticationScheme);
                claimsIdentity.AddClaim(new Claim(ClaimTypes.NameIdentifier, user.Id.ToString()));
                claimsIdentity.AddClaim(new Claim(AbpClaimTypes.UserId, user.Id.ToString()));
                claimsIdentity.AddClaim(new Claim(AbpClaimTypes.UserName, user.UserName.ToString()));
                if (tenant != null)
                {
                    claimsIdentity.AddClaim(new Claim(AbpClaimTypes.TenantId, tenant.Id.ToString()));
                }
                
    

    IHttpContextAccessor

        //校验、登记成功后
        await _contextAccessor.HttpContext.SignInAsync(new ClaimsPrincipal(result.Identity));
    

    内容不详,仅供参考

    参考

    认证相关类简要说明一

    使用ClaimsIdentity实现登录授

    基于IHttpContextAccessor实现系统级别身份标识

    Authentication认证

    【ASP.NET Core】运行原理(3):认证

  • 相关阅读:
    mvc UrlHelper
    Bootstrap框架
    Swiper插件
    JQuery 滚动条长度
    JQuery 全屏滚动
    JQuery TODOList
    JQuery 节点操作
    JQuery 事件委托 事件代理
    JQuery 关闭事件冒泡
    JQuery resize和scroll方法
  • 原文地址:https://www.cnblogs.com/xcsn/p/13467085.html
Copyright © 2011-2022 走看看