Я долго боролся с этим вопросом.По сути, я создаю корпоративный интранет-сайт (первый в MVC 3) и не могу заставить работать какие-либо проверки авторизации.Даже основной тип проекта «Интранет» не работает.Интересно, что «Добро пожаловать домен \ имя пользователя» работает нормально, поэтому я знаю, что он получает частичную информацию AD.
Вот мой процесс для основной настройки, которая не удается:
Войдите в систему как доменпользователь на рабочей станции разработки для Windows 7
Использование полностью исправленного VS2010 -> Создать новый проект -> ASP.NET MVC 3 -> Приложение для внутренней сети
Проект правой кнопкой мыши -> Использовать IIS Express
Свойства проекта -> Отключить анонимный доступ, Включить аутентификацию Windows
Измените файл web.config, добавив:
<add key="autoFormsAuthentication" value="false" />
Убедитесь, что файл web.config содержит:
<authentication mode="Windows" />
<authorization>
<deny users="?" />
</authorization>
Изменить HomeController по умолчанию, где проверяются Group1 и Group2, а рабочие группы в других приложениях:
HomeController
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace MVC3AuthTest001.Controllers
{
public class HomeController : Controller
{
public ActionResult Index()
{
Boolean isAdmin01 = User.IsInRole("Group1");
Boolean isAdmin02 = User.IsInRole("Group2");
ViewBag.Message = "Welcome to ASP.NET MVC!" + " Admin: " + isAdmin01 + " EACAdmin: " + isAdmin02;
return View();
}
}
}
Запустите код, и отобразится следующее:
Добро пожаловать в ASP.NET MVC!Group1: False Group2: False
Оба должны быть истинными, так как я являюсь членом обеих групп.
Кроме того, все
[Authorize(Roles = @"Group1")]
В основном сбой проверкиприложение, которое приводит к пустым экранам.
Обычно я допускаю проблему с сетью, но тот же код, работающий в приложении MVC 2, работает точно так же, как ожидалось с группами.
Развертывание приложения на нашем сервере разработки (производственная конфигурация, IIS 7 на сервере Win2008) также не работает должным образом.
Я в конце ...
Есть какой-то шаг, который я пропускаю?