列出存储在C#中System.Security.Claims.ClaimTypes中的所有Claim类型

问题描述 投票:1回答:1

使用Asp.Net Identity允许您将声明添加到用户。 System.Security.Claims.ClaimTypes允许您从各种ClaimTypes中选择任何ClaimType。

ClaimTypes是一个静态类,它定义了可以分配给主题的众所周知的声明类型的常量。

我想将所有这些声明存储在List <>中并将它们显示在ListBox中,以便具有Admin角色的用户可以在注册后为用户分配ClaimType。

似乎我可以这样做,因为ClaimTypes是一个静态类,并且无法列出那些定义的常量。

c# asp.net asp.net-identity claims-based-identity system.security
1个回答
2
投票

您可以通过反映类中的字段来列出声明类型:

var claimTypes = typeof(System.Security.Claims.ClaimTypes).GetFields().ToList();

对于列表中的每个claimType,您可以使用claimType.Name获取常量名称,使用claimType.GetValue(null)获取常量值。

© www.soinside.com 2019 - 2024. All rights reserved.