Поставщик членства в Microsoft Против Пользовательского Поставщика Против Полной Пользовательской системы входа в систему

StackOverflow https://stackoverflow.com/questions/1834871

Вопрос

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

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

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

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

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

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

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

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

  1. Используйте поставщика членства Microsoft и каким-то образом заставьте его работать на вас (хотя я хотел бы получить предложения)

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

  3. Использовать свое собственное, полностью настроенное решение?

Это было полезно?

Решение

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

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

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

Другие советы

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top