Проверка подлинности Windows - получение текущего имени пользователя - PullRequest
6 голосов
/ 23 января 2012

В моем приложении MVC я хочу отобразить таблицу в файле cshtml, если текущий пользователь, входящий в систему, - это x человек.Я использую аутентификацию Windows, и я внес следующие изменения в файл web.config.

<authentication mode="Windows">
      </authentication>

И в моем контроллере, когда я пытаюсь получить доступ к текущему имени пользователя, я не получаю никакого имени пользователя.Я пытаюсь следующее:

ViewBag.LogInUserName = Request.RequestContext.HttpContext.User.Identity.Name;

Эта строка выше работала раньше.Но я не знаю, что сейчас не так.Также я разместил свое приложение на IIS.

Ответы [ 3 ]

12 голосов
/ 18 ноября 2013

Взгляните на свойства веб-проекта, в частности:

  1. Анонимная аутентификация - установлено на «Отключено»
  2. Аутентификация Windows - установите «Включено»

По умолчанию они установлены в противоположность тому, что вы, вероятно, ищете.

Web project properties

(Изображение из MSDN )

12 голосов
/ 23 января 2012

Вам нужно поставить атрибут [Authorize] на вашем контроллере.

Вы можете использовать User.Identity.Name в своих контроллерах.

[Authorize]
public class YourController : Controller
{

    public ActionResult SomeAction()
    {
        var userName = User.Identity.Name;
    }
}
1 голос
/ 02 февраля 2013

Немного поздно, но это может послужить другим в будущем.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...