Проверка подлинности Windows MVC3 возвращает 401,0 неавторизованным - PullRequest
1 голос
/ 27 декабря 2011

Я создаю веб-приложение для локальной сети, которое использует учетные данные текущего пользователя для доступа к системе. Мой веб-сервер работает под управлением IIS 7.5 на сервере 2008.

В моей AD настроены две группы: пользователи и администраторы, обе из которых я хочу получить доступ к своему веб-приложению, и я добавил две группы (разрешения на чтение / выполнение) в свой каталог в IIS. Мой web.config довольно стандартный, и у меня нет никаких дополнительных фильтров в моем файле Global.asax.

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

Режим аутентификации установлен на Windows, но, к сожалению, каждая попытка моего коллеги получить доступ к веб-сайту терпит неудачу со следующим:

HTTP Error 401.0 - Unauthorized
You do not have permission to view this directory or page.

Поле "наиболее вероятная причина" предлагает:

The authenticated user does not have access to a resource needed to process the request.

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

Ответы [ 3 ]

2 голосов
/ 27 декабря 2011

Может быть много причин для этого.

  1. Ваш контроллер должен быть снабжен соответствующим атрибутом авторизации, например следующим:

    [Авторизироваться (Roles = "Администратор")]

  2. В вашем файле web.config вам необходимо иметь следующий код в вашей конфигурации system.web

    <roleManager enabled="true" defaultProvider="YourRoleProvider">

  3. Наконец, вам нужно посмотреть, был ли этот пользователь добавлен в соответствующие роли

1 голос
/ 23 июля 2017

У меня точно такая же проблема, я опустил голову, чтобы найти решение.После нескольких часов исследований кажется, что это очень простой способ решить эту проблему.

<system.webServer>
    <modules>
      <!--<remove name="FormsAuthentication" />-->
    </modules>
</system.webServer>

Я бы удалил оператор <remove name="FormsAuthentication" /> из атрибута modules в Web.Конфигурационный файл, который был добавлен по умолчанию при создании веб-сайта MVC по умолчанию.

Надеюсь, это сэкономит кому-то время и усилия!

0 голосов
/ 29 апреля 2015

У меня была такая же проблема в MVC 4, и я решил ее следующим образом:

[AllowAnonymous]

(Добавьте эту строку в контроллер, выше действия, которое вы вызываете, когда появляется эта ошибка.)

...