2013-03-22 3 views
0

Я принимал asp.net MVC 4 + WebAPI в IIS 7.5 с проверкой подлинности Windows. Когда я вызываю WebAPI из представления MVC4, он дает мне 401 несанкционированную ошибку. Но он отлично работает с моего локального хоста.asp.net MVC 4 + WebAPI, размещенный в IIS 7.5 с аутентификацией Windows, дает 401 несанкционированную ошибку

Я установил принципал в обоих местах (Thread.CurrentPrincipal & HttpContext.Current.User) из моего класса AuthenticationModule.

Я пробовал с помощью System.Web.HTTP AuthorizeAttribute.

Когда я отлаживаюсь с консолью JQuery, я вижу, что контекстный директор имеет значение null.

Сообщите мне о нижеследующем.

  1. Конфигурация хоста IIS?
  2. Как создать WebAPI аутентифицировать/разрешать вызовы из представлений?
+0

фактически установлена, вы службу роли подлинности Windows для IIS 7.5? Установка по умолчанию не включает службу роли проверки подлинности Windows. См. Здесь: http://www.iis.net/configreference/system.webserver/security/authentication/windowsauthentication –

ответ

0

Что-то не так в моей регистрации обработчика; Я забыл добавить его в system.webServer;

Фактическая конфигурация:

<configuration> 
      <system.web> 
       <httpModules> 
        <add .........../> 
       </httpModules> 
      </system.web> 
     </configuration 

конфигурация Добавлено:

<configuration> 
    <system.webServer> 
     <modules runAllManagedModulesForAllRequests="true"> 
      <add .........../> 
     </modules> 
    </system.webServer> 
</configuration 
0
Could you show me how are you calling the web api? If you are calling it with an 
httpclient you should provide a handler. I show you below: 

     var handler = new HttpClientHandler() 
     { 
      UseDefaultCredentials = true 
     }; 

     var client = new HttpClient(handler); 
Смежные вопросы