zoukankan      html  css  js  c++  java
  • 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);
    }
    }
    }
    }

  • 相关阅读:
    4.2 面向对象分析(二) CRC方法标识概念类
    4.1 面向对象分析(二) 标识概念类和对象
    3.4 面向对象分析(一)面向对象设计(初步)
    3.3 面向对象分析(一)分析模型法
    3.2 面向对象分析(一)名词法
    3.1 面向对象分析与设计概览
    2.7 UML状态图
    2.6 通信图
    2.5 UML顺序图
    2.4 UML类图
  • 原文地址:https://www.cnblogs.com/shineqiujuan/p/4023903.html
Copyright © 2011-2022 走看看