2009-05-09 2 views
1

Я создаю приложение ASP.NET MVC и используя проверку подлинности форм. В моем действии контроллера у меня есть:Почему мое приложение ASP.NET MVC запрашивает проверку подлинности Windows?

[Авторизовать (пользователи = "меня, Джо")]

, которая работает великолепно. Прошлой ночью, когда я опубликовал самые новые изменения и попытался просмотреть мой сайт, у него появилось диалоговое окно Windows Authentication. Я просмотрел весь свой код и не могу понять, ПОЧЕМУ он изменится на проверку подлинности Windows. Мой файл web.config не изменился, по крайней мере, на 10 дней. Если я запустил код из своего dev-модуля, он не сделает этого ... только когда он будет запущен с моего хоста. И если я удалю строку Authorize из моего действия контроллера, этого не произойдет.

Как я могу исправить это или как я могу отладить мое решение, чтобы узнать, почему это происходит?

Кстати, мой web.config говорит:

<authentication mode="Forms"> 
    <forms loginUrl="~/Account/LogOn" timeout="2880" /> 
</authentication> 

ответ

3

Это, скорее всего, делать настройки IIS для проверки подлинности и разрешений на папку веб-сайта на веб-сервере. Я бы проверял их обоих раньше.

+0

Это общедоступное решение, так что это будет где-то в моем хосте веб-панели управления? Почему это изменится и что еще более важно, почему он перестанет работать, если я удалю строку авторизации из моего кода? – Whozumommy

+0

Если вы берете атрибут авторизации, то разрешен анонимный доступ - поэтому не запрашивается авторизация. Я подозреваю, что что-то случилось, чтобы сбросить настройки авторизации, чтобы разрешить проверку подлинности Windows. Если они были унаследованы от родителя, а родительские настройки изменены, это объяснит это. – tvanfosson

+0

Но как я могу установить или протестировать это в общедоступной среде? Панель управления моих хостов (HELM), похоже, не включает способ установки свойств папки. – Whozumommy

0

Я думаю, вам нужно установить разрешения для IUSER, IWAM

Использование проводника Windows перейдите к папке, которой вы хотите предоставить разрешения. Щелкните правой кнопкой мыши по папке и выберите «свойства». В появившемся диалоговом окне нажмите вкладку «Безопасность» вверху. Затем вы можете добавить или изменить безопасность для этих учетных записей (IUSR_machineName, IWAM_macnineName и ASPNET).

+0

Это общедоступное решение, поэтому я не могу перейти к папке. Вы говорите, что я должен сделать это на моей местной копии? – Whozumommy

+0

Нет, ваша локальная копия уже работает, но не на сервере. Попробуйте просмотреть панель управления вашего хоста, чтобы получить это исправление или установив разрешение папки с помощью клиентского приложения FTP, например FileZilla –

1

Я просто снимаю в темноте, но у вас есть настройка <identity> в вашем web.config?

<system.web> 
    ... 
    <identity impersonate="true"/> 
    ... 
</system.web> 

Если да, это может помочь удалить эту строку. Это также может помочь спросить вашего хостинг-провайдера, почему Windows Authentication внезапно применяется к вашему веб-сайту. Как отмечали другие, существуют настройки IIS, которые могут вызывать подобное поведение.

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