Проверка подлинности Windows и API-интерфейс Asp.Net - программирование
Подтвердить что ты не робот

Проверка подлинности Windows и API-интерфейс Asp.Net

У меня есть приложение Intranet с проверкой подлинности Windows на основе MVC4.

Когда мне нужен объект WindowsIdentity для авторизации в контроллере, я просто использую

 HttpContext.User.Identity

Теперь я хотел использовать новый Asp.Net WebAPI для некоторых вызовов Ajax.

Есть ли способ получить объект WindowsIdenty таким же простым способом, как в контроллере MVC?

4b9b3361

Ответ 1

Пожалуйста, не обращайтесь к HttpContext с контроллера.

Вы можете получить доступ к свойству User, которое является способом доступа к Identity через без ссылки dirrect на HttpContext.

public class MyController : ApiController
{
    public string Get()
    {
         var indenty = this.User.Identity;
    }
}

Почему

Свойства контроллеров User обеспечивают уровень абстракции, который позволяет упростить насмешку и, таким образом, модульное тестирование. Эта абстракция также обеспечивает большую переносимость, например. если это был WebApi Self Host, у вас даже не было бы доступа к HttpContext.

Чтобы узнать больше о unit test и высмеивать свойство User, прочитайте здесь. Для получения дополнительной информации re: portability читайте здесь.