Как расширить членство в 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
Вы можете использовать имя приложения как учреждение, таким образом, у вас будет одинаковое имя пользователя в разных приложениях
Родриго.