2009-05-25 4 views
2

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

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

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

ответ

4

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

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

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

+0

Рекомендация поставщиков членства из-за элементов управления для приложения MVC, errr, неприменимо, видя, как элементы управления на стороне сервера являются одной из вещей, которые биты MVC избегают, как чума. – blowdart

+0

Я не согласен с тем, «легко написать членский провайдер». Провайдеры не могут быть легко расширяемы. Если вы хотите сворачивать самостоятельно, вам придется перезаписать все методы ... и их много. Во всяком случае, это правда, что Membershipsystem является хорошим выбором для множества приложений. –

+0

@blowdart - правда, однако MVC и ASP.Net не являются взаимоисключающими, и вы все равно должны использовать поставщиков членства. @Mathias - Все, что вы делаете, это реализовать интерфейс. Поскольку для большинства приложений требуется только функция ValidateUser() для регистрации пользователей и не требует управления пользователями, я считаю, что большую часть времени вам действительно нужно только реализовать одну из функций. – womp

Смежные вопросы