我应该使用Uri类来表示.NET中的OpenId标识符吗?

时间:2010-01-13 20:32:28

标签: .net openid

使用.NET Uri类来处理代码中的OpenId标识符是否合适?或者我最好只使用一个字符串?

编辑:我的问题的原因是我想知道在我的应用程序的域和持久层中使用OpenId标识符的最佳数据类型。我在Web表示层使用DotNetOpenAuth,因此在那里使用DotNetOpenAuth Identifier类是有意义的。

在我的应用程序的较低层,如果可能的话,我想限制对外部库和数据类型的依赖。所以我想知道System.Uri是否能胜任这项工作。

2 个答案:

答案 0 :(得分:2)

您应该使用DotNetOpenAuthIdentifier类,因为它支持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身份验证服务。