views:

150

answers:

1

If I have the ClaimedIdentifier is the a way to get the FriendlyIdentifierForDisplay using the dotNetOpenId?

Thanks

+4  A: 

No. FriendlyIdentifierForDisplay can sometimes be derived from the ClaimedIdentifier. For example, a claimed identifier of "http://blog.nerdbank.net/" becomes the friendly identifier "blog.nerdbank.net". But if the user types in "=arnott" (an i-name) as their identifier, the claimed id becomes an i-number (like =!9B72.7DD1.50A9.5CCD). Right after authentication, DotNetOpenId still has the user-supplied identifier handy and can thus set the friendly id to "=arnott". But given any arbitrary claimed id like =!9B72.7DD1.50A9.5CCD, it is impossible to reverse this into =arnott.

So it's best to store both the Claimed Id and the FriendlyIdentifierForDisplay in your database so that you can display it at times other than right after that user logs in.

Just be sure to never use FriendlyIdentiferForDisplay to lookup your user. It should only be used for display purposes (as in, you look up the user using their claimed id, and then you display the user's 'alias' on the web page).

If you only have the claimed id, you can do your best to simulate FriendlyIdentifierForDisplay behavior by trimming the scheme from the front, and the trailing slash and any #fragment. That's basically the algorithm for the URL identifiers.

Andrew Arnott