Получите FriendlyIdentifierForDisplay из ClaimedIdentifier в dotNetOpenId - PullRequest
2 голосов
/ 14 февраля 2009

Если у меня есть ClaimedIdentifier, это способ получить FriendlyIdentifierForDisplay с помощью dotNetOpenId?

Спасибо

1 Ответ

6 голосов
/ 17 февраля 2009

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

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

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

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

...