使用.NET Uri类来处理代码中的OpenId标识符是否合适?或者我最好只使用一个字符串?
编辑:我的问题的原因是我想知道在我的应用程序的域和持久层中使用OpenId标识符的最佳数据类型。我在Web表示层使用DotNetOpenAuth,因此在那里使用DotNetOpenAuth Identifier
类是有意义的。
在我的应用程序的较低层,如果可能的话,我想限制对外部库和数据类型的依赖。所以我想知道System.Uri是否能胜任这项工作。
答案 0 :(得分:2)
您应该使用DotNetOpenAuth的Identifier
类,因为它支持URI和XRI OpenID标识符,而System.Uri
类仅支持URI标识符。实现Identifier
类的Equals方法对于重要区域区分大小写,对其他区域区分大小写。
是的,您可以通过在Xri://方案前面加上Xri://方案并将其推入Uri实例来更改XRI,但是OpenID规范指定不以规范形式考虑xri://方案,并且应该大多数操作都不存在。
答案 1 :(得分:2)
除了添加XRI(广泛资源标识符,xri://)之外,版本2.0看起来没有新的格式计划,所以没有理由不解析它们并拥有Uri
,因为你会得到所有added features of the Uri class
从OpenID身份验证开始 2.0(和一些1.1实现),有两种类型的标识符 可以与OpenID一起使用:URL和 XRIs。有两种方法可以获得 支持OpenID的URL,可用于 登录所有启用OpenID的网站。 在自己的网站下使用现有网址 控制(例如一个人的博客或家庭 页)。可以插入适当的 HTML [8]中的OpenID标签或服务于 亚迪斯文件。[9]第二种选择 是注册OpenID标识符 与身份提供者。他们提供 注册URL的能力 (通常是第三级域名,例如 example.example.com)即将 自动配置 OpenID身份验证服务。