Как справиться с членством в приложении ASP.NET MVC?

Как бы вы справились с членством в приложении ASP.NET MVC? Используете какие-то внешние библиотеки? Как бы вы входили в систему OpenID? логин войти? электронная почта войти? Любое другое, на что стоит обратить внимание? Может, все они смешаны в приложении?

Кажется, ASP.NET поставляется с некоторой предварительно созданной пользовательской базой данных (я совершенно новичок в .Net). В примере NerdDinner он используется, но затем он заставляет внешние ключи использовать имя пользователя. Звучит не очень хорошо. Вы используете эту схему из двух отдельных баз данных или только одной? Что вы используете в качестве внешнего ключа, какие-либо идентификаторы?

Я нашел членство в ASP.Net MVC, кто-нибудь его использует? это хорошо работает? можно ли ожидать его сохранения?


person pupeno    schedule 25.05.2009    source источник


Ответы (1)


Провайдеры членства не новы для ASP.Net MVC, они были введены в ASP.Net 2.0. Модель поставщика членства - это просто уровень абстракции между вашим приложением и любым источником, по которому вы аутентифицируете своих пользователей. Вы можете легко переключать провайдеров, просто изменив файл web.config.

Написать провайдера членства легко, в сети есть много пошаговых руководств. Обычно вы бы сделали это, если бы вы использовали базу данных, которая использовала другую схему, чем примеры по умолчанию, которые поставляются с ASP.Net (что чаще всего). Внешние ключи в имени пользователя в примере NerdDinner - это упрощенный пример, который вы редко встретите в каких-либо реальных базах данных.

Я настоятельно рекомендую использовать модель членства. Такие элементы управления, как элемент управления входом, созданы для его использования, и он хорошо спроектирован и позволяет легко изменять или комбинировать различные методы входа в систему для вашего приложения. Если вы хотите использовать OpenID, быстрый поиск в Google обнаружил этот поставщик членства OpenID .

person womp    schedule 25.05.2009
comment
Рекомендация поставщиков членства из-за элементов управления для приложения MVC, ошибочно, не применима, поскольку элементы управления на стороне сервера являются одной из вещей, которых биты MVC избегают, как чумы. - person blowdart; 25.05.2009
comment
Я не согласен с тем, что легко написать поставщика членства. Провайдеры не являются легко расширяемыми. Если вы хотите свернуть свой собственный, вам придется перезаписать все методы ... а их много. В любом случае это правда, что система членства - хороший выбор для многих приложений. - person Mathias F; 25.05.2009
comment
@blowdart - true, однако MVC и ASP.Net не исключают друг друга, и вам все равно следует использовать поставщиков членства. @Mathias - Все, что вам нужно сделать, это реализовать интерфейс. Поскольку большинству приложений требуется только функция ValidateUser () для входа в систему и не требуется управление пользователями, я считаю, что в большинстве случаев вам действительно нужно реализовать только одну из функций. - person womp; 25.05.2009
comment
@Mathias Fritsch, вам нужно только изменить методы, которые вы действительно будете использовать. - person Todd Smith; 25.05.2009