Почему моя проверка подлинности Windows интрасети MVC3 не работает после публикации

У нас есть простой сайт интрасети в MVC3 и структуре сущностей. Все отлично работает при отладке из Visual Studio. Когда я публикую сайт либо на своем локальном веб-сервере IIS7.5, либо в модуле разработчика в том же домене, мне предлагается ввести имя пользователя и пароль, и он не будет подключаться к сайту. Он просто возвращает 401.1 и, как ни странно, показывает

Logon Method Not yet determined 
Logon User Not yet determined 

Я проверил, что проверка подлинности Windows включена, а анонимная проверка подлинности отключена. приложение использует applicationPoolIdentity, но я пробовал его с сетевыми службами без разницы. Webconfig включает

<authentication mode="Windows" />

, и я пробовал его с разделом авторизации и без него.

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

Единственное, что я нашел в Интернете, это изменение записи реестра, но в конечном итоге это будет на рабочем сервере, поэтому мне неудобно вносить изменения в реестр только для этого.

, выполняемый локально с этим блоком кода, возвращает всю ожидаемую информацию.

<div id="title">
    <h4> Environment.UserName: @Environment.UserName  
    @DateTime.Now.Millisecond.ToString() </h4>
    @foreach (var role in Roles.GetRolesForUser())
    {
        role.ToString(); <br />
    }
</div>
<div id="logindisplay">
    Context.User.Identity.Name <strong>@Context.User.Identity.Name</strong>!<br />
    @Environment.UserDomainName
</div>

Это веб-приложение MVC3. Переключатели аутентификации IIS:

Anonymous Authentication     Disabled
ASP.NET Impersonation        Disabled
Forms Authentication         Disabled
Windows Authentication       Enabled

Какие-то еще идеи или вещи, которые мне не хватает?

6
задан Brian 2 February 2012 в 16:58
поделиться