Простая ролевая аутентификация в asp.net - PullRequest
5 голосов
/ 28 ноября 2008

Я хочу сделать простую аутентификацию ролей в .NET - но теряюсь в изобилии apis ...

Я хотел бы иметь web.config для каждого каталога с правами доступа, например:

<authorization>
    <allow roles="admin"/>
    <deny users="*"/>
</authorization>

И на моей странице входа, где я делаю FormsAuthentication.RedirectFromLoginPage, я хочу указать роль вошедшего в систему пользователя (admin, user, etc ...) Я не нуждаюсь в RoleManagementProviders и избыточной функции (в моем случае) RoleManagement.

Какой API мне нужен пользователю, чтобы просто указать роль пользователя?

Спасибо

Ответы [ 3 ]

7 голосов
/ 28 ноября 2008

Вот ссылка на очень простую реализацию проверки подлинности с помощью ролей. Я считаю, что это самая базовая реализация аутентификации с помощью форм: http://www.codeproject.com/KB/web-security/formsroleauth.aspx

Вот один из провайдеров членства: http://www.asp.net/learn/moving-to-asp.net-2.0/module-08.aspx Возможно, вам придется поискать дополнительные учебники, чтобы получить четкое представление о том, как его настроить.

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

0 голосов
/ 12 декабря 2008

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

Как: использовать диспетчер авторизации с ASP.NET 2.0

Конфигурация, предоставляемая инструментом, сохраняется в файле XML, на который ссылаются в приложениях web.config:

<connectionStrings>
  <add name="LocalPolicyStore" connectionString="msxml://C:/AzManStore.xml"/>
</connectionStrings>

На которую можно ссылаться при настройке приложения для использования поставщика роли диспетчера авторизации:

<roleManager enabled="true" defaultProvider="RoleManagerAzManProvider">
  <providers>
    <add name="RoleManagerAzManProvider"
         type="System.Web.Security.AuthorizationStoreRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, publicKeyToken=b03f5f7f11d50a3a"
         applicationName="MyApp"
         connectionStringName="LocalPolicyStore"/>
  </providers>
</roleManager>
0 голосов
/ 28 ноября 2008

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

Работать с функциональностью по умолчанию для назначения ролей легко, и вам не нужно беспокоиться о правильном создании идентификационной информации для пользователя.

...