2009-02-14 2 views

ответ

6

No. FriendlyIdentifierForDisplay может иногда быть получены из ClaimedIdentifier. Например, заявленный идентификатор «http://blog.nerdbank.net/» становится дружественным идентификатором «blog.nerdbank.net». Но если пользователь вводит в качестве своего идентификатора «= arnott» (i-name), заявленный идентификатор становится i-номером (например =! 9B72.7DD1.50A9.5CCD). Сразу после аутентификации DotNetOpenId по-прежнему имеет удобный для пользователя идентификатор и поэтому может установить дружественный идентификатор «= arnott». Но при любом произвольном заявленном id, таком как =! 9B72.7DD1.50A9.5CCD, это невозможно отменить в = arnott.

Так что лучше хранить как заявляемое Id и FriendlyIdentifierForDisplay в вашей базе данных, так что вы можете отобразить его в другое время, чем сразу после этого входа пользователя в систему.

Просто уверен в никогда использование FriendlyIdentiferForDisplay для поиска вашего пользователя. Его следует использовать только для целей отображения (например, вы просматриваете пользователя с использованием заявленного идентификатора, а затем вы показываете «псевдоним пользователя» на веб-странице).

Если у вас есть только заявленный идентификатор, вы можете сделать все возможное, чтобы имитировать поведение FriendlyIdentifierForDisplay, обрезая схему спереди, а также конечную косую черту и любой фрагмент #. Это в основном алгоритм для идентификаторов URL.