Как расширить членство в Asp.net?

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

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

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

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

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

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

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

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

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

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

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

Например.

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

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

Ответ 1

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

Ответ 2

Леньким способом сделать это было бы объединение организации и имени пользователя для создания фактического имени пользователя.

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

Затем перед созданием пользователя или входа в систему вы просто объедините две строки вместе.

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

Джеймс

Ответ 3

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

Родриго.