2013-12-04 3 views
1

Я пытаюсь создать страницу «heartbeat» на моей системе ASP.NET MVC 4, поэтому мы можем проверить автоматическую основу, что все работает нормально. Все, что вам нужно сделать, - запустить простой запрос в БД и убедиться, что исключение не выбрано, и в этом случае он вернет Json «success», иначе он вернет сообщение об исключении.Как сделать исключения для проверки подлинности форм в ASP.NET MVC?

Остальная часть системы защищена аутентификацией Forms:

<authentication mode="Forms"> 
    <forms name=".ADAuthCookie2" loginUrl="~/Account/Login" timeout="60" slidingExpiration="true" /> 
</authentication> 
... 
<authorization> 
    <deny users="?" /> 
    <allow users="*" /> 
</authorization> 

Но, очевидно, я не хочу, чтобы заставить аутентификацию для проверки пульса. Поэтому я создал HeartBeatController и пометил как контроллер, так и метод Index() с помощью [AllowAnonymous] - но все же, когда я пытаюсь получить доступ к url ​​/HeartBeat, я перенаправляюсь на страницу входа.

Что мне не хватает?

+0

У вас есть ' 'в вашем' web.config'? –

+0

@mmillican - да, обновленный вопрос –

ответ

2

Вы должны удалить

<authorization> 
    <deny users="?" /> 
    <allow users="*" /> 
</authorization> 

, как я считаю, что атрибут AllowAnonymous не отменяет это.

UPDATE

Вы должны добавить атрибут Authorize к контроллерам, или в следующей статье упоминается, вы можете установить его в GlobalFilters

http://blogs.msdn.com/b/rickandy/archive/2012/03/23/securing-your-asp-net-mvc-4-app-and-the-new-allowanonymous-attribute.aspx

+0

Каковы будут другие побочные эффекты? –

+0

Все, что вы хотите защитить, вам понадобится атрибут «Авторизовать». Вы можете сделать это на уровне «Контроллер» или «ActionResult». –

+0

Я только что попробовал, и это вызывает исключения в других местах, которые полагаются на него. Разве нет какой-либо настройки, которую я могу добавить где-то, что конкретно означает белый список моей биения? –

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