Я хочу сделать простую аутентификацию ролей в .NET, но я потерялся в изобилии apis ...
Я хотел бы иметь web.config для каждого каталога с доступом к ролям, например:
<authorization>
<allow roles = "admin"/>
<deny users = "*"/>
</authorization>
И на моей странице входа в систему, где я использую FormsAuthentication.RedirectFromLoginPage, я хочу указать роль вошедшего в систему пользователя (администратор, пользователь и т. д.) Мне не нужны RoleManagementProviders и избыточная функция (в моем случае) RoleManagement.
Какой API нужен пользователю, чтобы просто указать роль пользователя?
Спасибо





Лично, если вы собираетесь использовать управление ролями и пользовательские функции, уже представленные в ASP.NET, зачем пытаться создать решение, которое в будущем ограничит ваши возможности для расширения.
Работать с функциями по умолчанию для назначения ролей легко, и вам не нужно беспокоиться о правильном создании идентификационной информации для пользователя.
Вот ссылка на очень простую реализацию аутентификации с помощью форм с ролями. Я считаю, что это самая простая реализация аутентификации с помощью форм: 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>
Я не могу использовать функции по умолчанию, так как у меня нет SQL, где я могу создать все таблицы, необходимые для членства в роли. Мне нужно найти альтернативный способ.