Роли не работают в ActiveDirectoryMembershipProvider

1

У меня есть веб-сайт, который использует формы auth и ActiveDirectoryMembershipProvider. У меня есть действие в контроллере:

[Authorize(Roles = "jira-developers")]
        [HttpGet]
        public ActionResult MonitorForm()
        {
            var list = Dal.GetActualData();
            return View(list);
        }

Я абсолютно уверен, что мой пользователь находится в группе с Name = "jira-developers", но auth не удается. Если я удалю параметр Роли, auth будет работать нормально.

Что я делаю не так? Я буду благодарен за любую помощь!

Теги:
asp.net-mvc-5
forms-authentication

2 ответа

1
Лучший ответ

Поскольку никто не дал мне ответа, я сам отвечу на этот вопрос. ActiveDirectoryMembershipProvider может обрабатывать только auth и включить управление ролями, мне нужно было указать roleManager. Я реализовал свой собственный RoleProvider (потому что мне нужна определенная функциональность), и теперь мой Web.Config выглядит так:

<system.web>
<authentication mode="Forms">
  <forms name=".ADAuthCookie" loginUrl="~/Account/Login" timeout="45" slidingExpiration="false" protection="All" />
</authentication>
<membership defaultProvider="ADMembershipProvider">
  <providers>
    <clear />
    <add name="ADMembershipProvider"
         type="System.Web.Security.ActiveDirectoryMembershipProvider"
         connectionStringName="ADConnectionString"
         attributeMapUsername="sAMAccountName" />
  </providers>
</membership>
<roleManager enabled="true" defaultProvider="AdRoleProvider">
  <providers>
    <clear/>
    <add name="AdRoleProvider" type="InternalAutomation.Providers.AdRoleProvider"/>
  </providers>
</roleManager>
<compilation debug="true" targetFramework="4.5.1" />
<httpRuntime targetFramework="4.5.1" />

0

У вас есть роль, определенная в таблице ролей? (В зависимости от версии, которую вы используете, таблица может быть названа немного отличной от моего снимка экрана ниже)

Изображение 174551

У вас должна быть запись с именем "RoleName" из "jira-developers". Пользователь, набравший действие, также должен иметь запись в таблице "... UsersInRoles".

  • 0
    Какую таблицу вы имеете в виду? Я хочу использовать Active Directory Users and Groups в качестве ролей

Ещё вопросы

Сообщество Overcoder
Наверх
Меню