首页 > 解决方案 > 声明类型 URL

问题描述

这个问题之前已经被问过......这里-> claim-types 中的 URL 是什么

但接受的答案实际上并没有回答这个问题。为什么 ASP.NET Core 身份验证中的声明类型格式为 HTTP Urls?声明类型的“http://schemas.microsoft.com/....”部分的目的是什么?它不是指向网站或某种网络服务的实际超文本传输​​协议 URL。该地址没有架构文档。那么将它们格式化为 HTTP URL 的目的是什么?我知道它们是什么。我只是不知道为什么它们按原样格式化。

标签: asp.net-coresecurity

解决方案


我相信 Microsoft 使用 URI 是因为它们符合目的 - 他们需要一个唯一标识符来标识每种声明类型,最好是人类可读的,并保证不会与其他第三方组件或开发人员自己创建的名称发生意外冲突。

Microsoft 选择 URL(它只是一种 URI)的事实可能是传统的。多年来,不同组织开发了各种声明类型标准,其中许多基于作为 URL 的 XML 名称空间(例如,请参阅OASIS 的此标准文档)。许多这些知名的声明类型今天仍在使用,因此以与现有知名声明类型相同的方式格式化任何新定义的声明类型是有意义的。


推荐阅读