• Claims Identity


    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Security.Claims;
    using System.Security.Principal;
    using System.Text;
    using System.Threading;
    using System.Threading.Tasks;

    namespace SecurityDemo
    {
    class Program
    {
    static void Main(string[] args)
    {
    Setup();
    CheckCompatibility();
    CheckNewClaimsUsage();
    Console.ReadLine();
    }

    private static void Setup()
    {
    IList<Claim> claimCollection = new List<Claim>
    {
    new Claim(ClaimTypes.Name, "Andras")
    , new Claim(ClaimTypes.Country, "Sweden")
    , new Claim(ClaimTypes.Gender, "M")
    , new Claim(ClaimTypes.Surname, "Nemes")
    , new Claim(ClaimTypes.Email, "hello@me.com")
    , new Claim(ClaimTypes.Role, "IT")
    };

    ClaimsIdentity claimsIdentity =new ClaimsIdentity(claimCollection, "My e-commerce website");

    Console.WriteLine(claimsIdentity.IsAuthenticated);

    ClaimsPrincipal principal = new ClaimsPrincipal(claimsIdentity);
    Thread.CurrentPrincipal = principal;

    }

    private static void CheckCompatibility()
    {
    IPrincipal currentPrincipal = Thread.CurrentPrincipal;
    Console.WriteLine(currentPrincipal.Identity.Name);
    }

    private static void CheckNewClaimsUsage()
    {
    ClaimsPrincipal currentClaimsPrincipal = ClaimsPrincipal.Current;//Thread.CurrentPrincipal as ClaimsPrincipal;
    Claim nameClaim = currentClaimsPrincipal.FindFirst(ClaimTypes.Name);
    Console.WriteLine(nameClaim.Value);
    foreach (ClaimsIdentity ci in currentClaimsPrincipal.Identities)
    {
    Console.WriteLine(ci.Name);
    }
    }
    }
    }

  • 相关阅读:
    vscode设置js文件自动格式化单引号
    解决git每次输入账号密码问题
    vscode设置vouter标签不换行
    查看修改npm地址并登录
    正则匹配[]外部的内容
    使用v-model实现父子组件之间传值
    发布网站
    安装IIS
    IIS服务添加角色
    react生命周期
  • 原文地址:https://www.cnblogs.com/shineqiujuan/p/4023903.html
Copyright © 2020-2023  润新知