Подтвердить что ты не робот

Поставщик членства Microsoft и пользовательский поставщик Vs Полная система пользовательского входа

В настоящее время я конвертирую старый очень старый, но работающий классический ASP-сайт в ASP.Net.

Он имеет полностью настраиваемую систему управления пользователями. Несмотря на то, что он отлично работает, ему действительно нужно обновить, поскольку я хочу, чтобы он был более гибким для некоторых будущих проектов в работе.

Когда я спросил кого-то об этом, они сказали: "Вам нужно использовать Поставщика Microsoft", и прочитал лекцию о том, как Microsoft бесплатно освобождает все эти вещи и насколько они хороши, и их следует использовать как можно больше.

Я провел довольно много исследований по этому вопросу (в основном, глядя на видео на http://asp.net/learn), и меня очень впечатляют некоторые из функции, поскольку, как представляется, компоненты перетаскивания для элементов, которые потребуют от меня времени, чтобы написать.

Однако текущая база данных членства сложна для объяснения, это полностью настраиваемая письменная база данных, которая имеет много внутренних отношений... Она не совсем "совместима" с поставщиком Microsoft по умолчанию.

Я взглянул на Как мне: создать пользовательский поставщик членства?, но я чувствую себя немного вне зоны комфорта и беспокоится, что он будет либо медленным, либо ввести дыру в безопасности, либо просто не сработает.

В конце дня поставщик членства Microsoft должен работать для меня - единственные настройки, которые мне действительно нужны, - это логин, чтобы использовать поле имени пользователя/пароля в моей базе данных и создать пользователя script, у которого много настраиваемый код для нескольких сторонних систем (требуется предоставление услуг и т.д.).

Мне просто интересно, что бы вы сделали, если столкнулись с подобной ситуацией?

  • Использовать Microsoft Membership Provider и как-то заставить его работать на вас (хотя я бы хотел предложения)

  • Используйте поставщика членства Microsoft, но используйте настраиваемый поставщик, настроенный вокруг вашего кода.

  • Используйте свое собственное полностью настроенное решение?

4b9b3361

Ответ 1

Это видео усложняет вещи:) Если вы собираетесь реализовать пользовательский провайдер, то рефлектор над существующим - это хорошее место для запуска:)

В качестве быстрого и грязного варианта вы могли бы, конечно, взломать хранимые процедуры, которые использует поставщик членства SQL, но настраиваемый код для предоставления услуг, вероятно, растягивает это.

Если вы думаете об этом, удаленное предоставление услуг на самом деле не принадлежит провайдеру членства, это не действительно функция членства - все членство делает это, обеспечивая им имена пользователей, пароли и аутентификацию. Мое собственное мнение состоит в том, что вы должны переместить выделение услуг из него и выполнить его на сайте ASP.NET после того, как пользователь был создан - даже если это просто вызов хранимой процедуры, как только поставщик членства выполнил свою работу. Если вы это сделаете, вы можете обнаружить, что поставщик членства SQL будет делать все, что вам нужно (возможно, с ролями и поставщиками профилей), и, следовательно, у вас есть меньше кода для написания!

Ответ 2

Я был в подобных ситуациях в прошлом. В обоих случаях мы создали пользовательские реализации провайдеров (MembershipProvider, RoleProvider, ProfileProvider) вокруг существующего механизма.

В обоих случаях мы использовали только реализации поставщика для доступа только для чтения, например. чтобы дать нам простые проверки gubbins в web.config и т.п. Код администрирования пользователя остался один, поскольку он работал нормально.

Ответ 3

Если существующий поставщик работает (имеет правильные поля для ваших данных), используйте его для запуска. Вы можете ОЧЕНЬ легко заменить это с поставщиком клиента позже (только одно изменение значения конфигурации).

Остерегайтесь того, что для этого не существует "из коробки" интерфейса управления ASP.NET, вам нужно перевернуть свой собственный или использовать сторонний.

Ответ 4

Используйте мой специализированный MemberhipProvider для работы с моими собственными таблицами базы данных.