如果我有 ClaimedIdentifier 是一种使用 dotNetOpenId 获取 FriendlyIdentifierForDisplay 的方法吗?
谢谢
如果我有 ClaimedIdentifier 是一种使用 dotNetOpenId 获取 FriendlyIdentifierForDisplay 的方法吗?
谢谢
不可以。FriendlyIdentifierForDisplay有时可以从 ClaimedIdentifier 派生。例如,声明的标识符“ http://blog.nerdbank.net/ ”变成友好的标识符“blog.nerdbank.net”。但是,如果用户输入“=arnott”(一个 i-name)作为他们的标识符,则声明的 id 将变成一个 i-number(如 =!9B72.7DD1.50A9.5CCD)。身份验证后,DotNetOpenId 仍然可以方便地使用用户提供的标识符,因此可以将友好 id 设置为“=arnott”。但是给定任何任意声明的 ID,例如 =!9B72.7DD1.50A9.5CCD,不可能将其反转为 =arnott。
因此,最好将 Claimed Id 和 FriendlyIdentifierForDisplay 都存储在您的数据库中,以便您可以在该用户登录后以外的时间显示它。
请确保永远不要使用 FriendlyIdentiferForDisplay 来查找您的用户。它只能用于显示目的(例如,您使用他们声称的 id 查找用户,然后在网页上显示用户的“别名”)。
如果您只有声明的 id,则可以通过从前面修剪方案、尾部斜杠和任何#fragment 来尽力模拟 FriendlyIdentifierForDisplay 行为。这基本上就是 URL 标识符的算法。