Arhn - архитектура программирования

Настраиваемый менеджер ролей / поставщик

Я пытаюсь реализовать настраиваемый диспетчер ролей в приложении MVC5, используя следующий настраиваемый поставщик ролей Учебник.

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

namespace Models.Security
{
public class CustomRoleProvider : RoleProvider
{
/// logic
 public override string[] GetRolesForUser(string username)
    {
/// logic
public override bool IsUserInRole(string username, string roleName)
    {

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

<system.web>
<compilation debug="true" targetFramework="4.5.2" />
<httpRuntime targetFramework="4.5.2" />
 <roleManager enabled="true" defaultProvider="CustomRoleProvider">
  <providers>
    <clear />
    <add name="CustomRoleProvider" type="Models.Security.CustomRoleProvider"/>
  </providers>
</roleManager>

Однако когда я пытаюсь получить доступ к своему приложению, я получаю следующую ошибку:

Сообщение об ошибке парсера: не удалось загрузить тип Models.Security.CustomRoleProvider.

Source Error:

Line 29:       <providers>
Line 30:         <clear />
Line 31:         <add name="CustomRoleProvider" type="Models.Security.CustomRoleProvider"/>
Line 32:       </providers>
Line 33:     </roleManager>

Насколько мне известно, я сделал все, что требовалось. Единственное, что отличается, это то, что я использую настраиваемую ссылку членства на AD.

<authentication mode="Forms">
  <forms name=".ADAuthCookie" loginUrl="~/Account/Login" timeout="200" slidingExpiration="false" protection="All" />
</authentication>
<membership defaultProvider="ADMembershipProvider">
  <providers>
    <clear />
    <add name="ADMembershipProvider" type="System.Web.Security.ActiveDirectoryMembershipProvider" connectionStringName="ADConnectionString" attributeMapUsername="sAMAccountName" />
  </providers>
</membership>

Что мне еще нужно сделать? Изменил ли MVC5 подход?


Ответы:


1

да. MVC 5 использует удостоверение, поставщики ролей - это концепция членства в ASP.NET. Вам не нужны поставщики ролей в Identity, потому что роли управляете вы. Это сущность в вашем проекте (или, по крайней мере, может быть, если вы создаете подкласс IdentityRole), поэтому вы можете делать все, что захотите.

08.04.2016
  • Так есть ли простой способ перемещаться между ними? Все примеры, которые я нашел на страницах диапазона Identity Role / с их использованием! У меня есть настраиваемые таблицы с ролями и действиями, которые я хочу проверить по атрибуту авторизации в действии. Я действительно хочу сохранить все роли для моего объекта UserPrincipal при входе в систему, а затем использовать это на протяжении всего сеанса. 08.04.2016

  • 2

    Вы по-прежнему можете использовать roleManager и своего поставщика настраиваемых ролей. Просто нужно настроить принципала на тип RolePrincipal. Вы можете сделать это в IAuthenticationFilter и зарегистрировать его на global.asax. См. Эти две ссылки для примера кода: RolePrincipal / IAuthenticationFilter

    25.03.2017
    Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..