Я использую аутентификацию windows и поместил атрибут Authorize
поверх класса моего контроллера, чтобы убедиться, что только указанная группа c в активном каталоге может получить доступ к функциям администратора. Моя проблема в том, что, когда я пытаюсь go к любым представлениям из Admin controller
, он будет запрашивать аутентификацию 9 раз, плюс 1 раз при первом обращении к контроллеру. Кажется, что он может помнить, что я был аутентифицирован для просмотра представлений, но затем он выполняет некоторые задачи при загрузке представления, что требует новой аутентификации 9 раз. Я понятия не имею, почему это происходит.
Я пытался поместить атрибут Authorize
в методы вместо класса, но он делает то же самое, даже для методов без атрибута Authorize
. Я предположил, что это был initialize method
, который будет запрашивать авторизацию, но я пытался запустить приложение в режиме отладки и выполнять каждую строку initialize method
шаг за шагом, но он не запрашивал авторизацию до после того, как метод был закончен. Может быть, это database context
? Любая помощь в решении этой проблемы очень ценится!
Ниже приведен единственный код, который я добавил, когда пытался создать эту функцию авторизации.
Контроллер администратора:
[Authorize(Roles = "DOMAIN\\SECURITY-GROUP")]
public class AdminController : Controller
{
private ITScreenContext db = new ITScreenContext();
private EmailService emailService = new EmailService();
protected override void Initialize(RequestContext requestContext)
{
base.Initialize(requestContext);
string culture = requestContext.RouteData.Values["lang"]?.ToString() ?? "en";
var cultureInfo = CultureInfo.GetCultureInfo(culture);
Thread.CurrentThread.CurrentCulture = cultureInfo;
Thread.CurrentThread.CurrentUICulture = cultureInfo;
}
// GET: Admin
public ActionResult Index()
{
return View(db.PP_Items.ToList());
}
Web.config:
<system.web>
<authentication mode="Windows"/>
<authorization>
<deny users="?"/>
</authorization>
<compilation debug="true" targetFramework="4.7.2" />
<httpRuntime targetFramework="4.7.2" />
<customErrors mode="Off" />
<sessionState mode="InProc" timeout="11" />
</system.web>