我试图基于来自远程服务的用户会话数据填充ASP.NET核心中的ClaimsIdentity
对象。我注意到在某些情况下(例如防伪系统)ASP.NET核心期望填充IIdentity.Name
。但是,我不确定填充它的确切内容以及框架如何使用信息(如果有的话)。
例如,我们可以用途:
- 用户名(但某些用户使用SSO登录,但没有此用户名)
- 名+姓(不唯一)
- 用户识别码
- 会话ID(因会话而异)
- 别东西
ASP.NET核心(或一般的.NET,因为IIdentity
是一般的.NET概念)期望此属性表示什么?
1条答案
按热度按时间k5ifujac1#
我认为
IIdentity.Name
文档非常清楚:代表其运行代码的用户的名称。
因此,在您的情况下,这应该是名+姓,唯一性不应该是一个问题(因为这将是一个相当奇怪的期望框架有一个保证名称的唯一性)
也不是下面这句话:
对于未经身份验证的实体,Name通常设置为空字符串(“”),但也可以采用其他值。
这可能是为什么它也包括在像防伪令牌的东西的原因。
同样来自Prevent Cross-Site Request Forgery (XSRF/CSRF) attacks in ASP.NET Core doc:
客户端的用户名已经嵌入到生成的令牌中,因此不需要包含此信息。