Для OpenID вы должны использовать ClaimedIdentifier
в качестве идентификатора.Не что-нибудь еще, и, конечно, не только подстрока из заявленного идентификатора.Все остальное серьезно подрывает безопасность вашего приложения.
Что касается места его хранения, я бы порекомендовал вам сохранить выделенный столбец для хранения заявленного вами идентификатора, а не просто хранить его в столбце UserName.Рассмотрим следующий сценарий:
- Пользователь создает учетную запись на вашем веб-сайте с использованием OpenID
http://SomeOpenIDUrl
- Злоумышленник входит в систему с помощью имени пользователя / пароля.Он оставляет пароль пустым, но вводит
http://SomeOpenIDUrl
в качестве имени пользователя - Злоумышленник успешно входит в систему в качестве своей жертвы.
Ситуацию, подобную приведенной выше, можно, конечно, различными способами смягчить, но лучший способ IMO - сохранить OpenID вне столбца username, чтобы это было абсолютно невозможно.