Как продлить членство в Asp.net? - PullRequest
11 голосов
/ 02 августа 2009

Мне интересно, как мне расширить членство в asp.net?

Когда пользователь входит в систему, я хочу проверить имя пользователя и пароль. Конечно, стандартное членство в asp.net делает это (это ValidateUser ()).

Я также хочу проверить другое поле, которое называется "учреждение" Если пользователь что-то вводит в это поле, я хочу проверить, соответствуют ли «учреждение», «имя пользователя» и «пароль» тому, что находится в базе данных.

Если пользователь оставляет «учреждение» пустым, тогда я просто хочу использовать его по умолчанию, метод ValidateUser (), предоставленный в asp.net, и проверять только «userName» и «password».

Так можно ли перегрузить метод ValdiateUser ()? Или мне придется написать свой собственный, чтобы разобраться с этим новым делом?

Где я буду хранить это поле "учреждения" в базе данных? Я что-то слышал о людях, которые рекомендуют таблицу «Профиль», но я не уверен.

Также, как я могу изменить членство, чтобы относиться к ним как к 3 разным пользователям

Учреждение: ABC Имя пользователя: A09410515 Пароль: 1234567

Учреждение: ГСГ Имя пользователя: A09410515 Пароль: 1234567

Имя пользователя: A09410515 Пароль: 1234567

Так что, поскольку моя база данных должна быть обеспокоена, это должны быть 3 уникальных пользователя. Конечно, в случае, если в моей базе данных уже хранится та же информация.

Например.

Учреждение: ABC Имя пользователя: A09410515 Пароль: 1234567

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

Ответы [ 3 ]

15 голосов
/ 02 августа 2009

Да, вы можете создать собственного провайдера членства . Ваш провайдер реализует MembershipProvider , предоставляя вам полный контроль над созданием интерфейса между системой членства и расширенной схемой базы данных. Написание специального провайдера членства для вашего веб-сайта ASP.NET 2.0 - подробный пример.

2 голосов
/ 02 августа 2009

Ленивый способ сделать это состоит в том, чтобы объединить учреждение и имя пользователя вместе, чтобы создать действительное имя пользователя.

Таким образом, у вас будет 3 разных имени пользователя: ABC & A09410515, GHA & A09410515 и & A09410515. Только не позволяйте пользователю использовать & в имени пользователя.

Затем, прежде чем создать пользователя или войти в систему, просто объедините две строки вместе.

Я не могу вспомнить каких-либо существенных проблем, которые не могут быть устранены простым взломом (например, отображение имени пользователя (используйте username.split ('&') [1] ), но JP публикация определенно является «правильным» способом сделать это.

Джеймс

1 голос
/ 17 ноября 2009

Вы можете использовать Имя приложения в качестве учебного заведения, чтобы в разных приложениях было одно и то же имя пользователя

Родриго.

...