2015-06-26 2 views
3

Моя цель - использовать IWA (встроенную проверку подлинности Windows) с .NET Web API. Я хочу сохранить проект как проект веб-API без MVC.HttpContext.Current.User null с проектом только для Web API v2

Я создал два проекта в Visual Studio 2013 Premium:

  1. Первым я выбрал ASP.NET веб-приложение с шаблоном Web API с аутентификацией для проверки подлинности Windows. Это также включает ASP.NET MVC.
  2. Второй шаблон пустого веб-приложения ASP.NET с базовыми ссылками для Web API.

Первый работал, я был в состоянии получить мой счет AD/идентичность Windows, при вызове:

HttpContext.Current.User 

второй я не могу получить мой AD идентичность/Windows, я попробовал все из следующие:

- HttpContext.Current.User 
- User 
- RequestContext.Principal 

Что нужно для вызова из веб-API (второго проекта), чтобы заполнить пользователя?

+0

Я столкнулся с этой проблемой и раньше. Насколько я понял, не было способа получить пользователя из контекста в самом WebAPI. То, что я закончил делать в качестве обходного пути, заключалось в том, что вызывающее приложение (python) отправило учетные данные пользователя, зашифрованные в ApiController, а затем обработало его оттуда. – amza

ответ

2

Web API v2 использует OWIN (Katana), чтобы включить IWA с IIS, вам необходимо импортировать библиотеку Microsoft.Owin.Host.SystemWeb. Это использует IIS с конвейером ASP.NET, который заполняет User.

Инструкции по установке OWIN with Web API, отмечает:

  1. Эта статья является с 2013 года, с тех пор Microsoft.Owin.Host.SystemWeb уже не в предварительной версии, например, вам не нужно «-pre» для установки из NuGet.
  2. Удалить содержимое внутри Способа конфигурации Startup.cs.
Смежные вопросы