Простая ролевая аутентификация в asp.net

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

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

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

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

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

Спасибо

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
5
0
4 933
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

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

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

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

LeJeune 29.11.2008 03:10
Ответ принят как подходящий

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

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

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

Обратите внимание, что для использования модели поставщика ролей вам не нужно использовать базу данных и схему, есть более простые варианты. Возможно, вас заинтересует диспетчер авторизации (бесплатная загрузка от 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>

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