Думая о том, чтобы отказаться от моей идеи написать пользовательское членство и поставщик ролей Мнения? - PullRequest
3 голосов
/ 20 апреля 2009

У меня есть веб-приложение, которое я создаю в ASP.NET, которое соответствует следующим требованиям безопасности:

  1. Должен иметь возможность интеграции с основной схемой аутентификации, которая передает уникальный ключ приложению, чтобы указать, что пользователь вошел в систему через сторонний сайт.
  2. Должен быть в состоянии использовать существующие таблицы пользователей / ролей.
  3. Может использовать проверку подлинности с помощью форм и разрешать пользователям входить через отдельную страницу входа, если они не являются участниками стороннего сайта.

Я пытался настроить поставщиков роли и членства в SQL, но я столкнулся с проблемами, в частности, с тем, что существует строго типизированный объект MembershipUser, который имеет uniqueIdentifier (providerKey) и не имеет места для моего собственного пользовательского набора ключи (их будет две), идентифицирующие пользователей.

Должен ли я отказаться от реализации своего пользовательского провайдера членства и использовать вместо этого файлы cookie / сеанс? Мне бы очень хотелось использовать встроенную функциональность, но она не представляется выполнимой.

Ответы [ 3 ]

1 голос
/ 20 апреля 2009

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

Я построил этот тип системы поверх поставщика членства ASP.NET много раз для клиентов, использующих DotNetNuke, он работает очень хорошо.

0 голосов
/ 08 мая 2009

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

Я создал свою собственную модель пользователя. Это позволяет мне иметь гибкий образец для подражания внутри моего приложения. Я свободен создавать контекстные доменные роли и отделять их от реальной модели пользователя.

Это действительно не так сложно. Не забудьте подсолить ваши пароли и т. Д. И почитайте несколько книг по безопасности.

При таком подходе вы все еще можете использовать FormsAuthentication.

Большинство систем, которые полагаются на поставщика членства asp.net, действительно шизофреничны. У вас будет таблица 2 Users, например, в CommunityServer у вас есть aspnet_users и cs_Users, где cs_Users ссылается на MembershipId aspnet_users и где он представляет еще один UserId. Он также отражает имя пользователя и т. Д.

0 голосов
/ 20 апреля 2009
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...