Преобразование уникальной строки в уникальное целое число - PullRequest
1 голос
/ 03 октября 2011

Я хочу изменить наше приложение c # asp.net mvc для работы с аутентификацией Windows, а также с аутентификацией форм (как в настоящее время реализовано).

В настоящее время у нас есть несколько таблиц, ссылающихся на целое число идентификатора пользователя в пользовательской таблице, используемой для аутентификации форм.

Существует ли подходящий способ преобразования уникального строкового имени пользователя, возвращаемого при аутентификации Windows, в уникальное целое число, которое можно использовать в качестве идентификатора для других таблиц?

Примером может быть использование .GetHashCode () для имени пользователя, однако я не уверен, что это обязательно создаст соответствующее целое число (т. Е. Уникальное, всегда одно и то же целое число, возвращаемое при том же имени пользователя и т. Д.)

Ответы [ 2 ]

2 голосов
/ 03 октября 2011

GetHashCode () изменяется между версиями платформы, платформой ОС и т. Д., Поэтому вы не можете полагаться на него для использования в качестве БД PK.

Если вы работаете с аутентификацией Windows, тогда сохранение идентификатора полезно дляотладка, устранение неполадок и, возможно, олицетворение.Почему бы не сохранить его в таблице с отображением имени пользователя Windows -> UserID, чтобы можно было искать идентификатор пользователя по имени пользователя?

2 голосов
/ 03 октября 2011

Do not use GetHashCode()!

Вместо этого вы должны создать таблицу базы данных, сопоставляющую учетные записи пользователей Windows со встроенными идентификаторами пользователей (таблица Users).
Вы также можете хранить дополнительную информацию о каждом пользователе в этой таблице.

...