2015-12-30 2 views
1

Я тестирую веб-сайт, разработанный в MVC4 и развернутый на IIS с Аутентификация Windows и Анонимная аутентификация включена.Контроллер с атрибутом Authorize называется дважды

я испытал и подтвердил от Скрипач, что если контроллер помечен атрибутом Авторизоваться, то контроллер вызывается дважды в моем случае.

Фрагмент кода -

[Authorize(Roles = @"BUILTIN\Administrators,SomeAdmins,OtherGroup")] 
public class AdminController : Controller 
{ 
    // Some code here 
} 

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

Можете ли вы помочь мне понять причину?

+1

«Контроллер называется дважды» - что именно это означает? И как вы это подтвердили через Fiddler? Вы пробовали * отлаживать * свой код? – poke

+1

Попробуйте отладить ваш код, откуда приходит второй вызов –

+0

@poke Я просто запустил веб-сайт в браузере. Скрипач захватил просьбы. Он показывает два запроса на ту же страницу, что и http: // SomeUrl/Admin. –

ответ

1

Я думаю, что это нормально, так как Windows Authorization - это протокол, основанный на запросах. Сначала вы получите код 401 (Unauthorized), и браузер отправит соответствующие учетные данные. Тем не менее, я думаю, что это происходит между вашим браузером и IIS Sever до того, как маршрут будет отображен, и вызвано действие контроллера.

Более подробную информацию можно найти here.

Смежные вопросы