Как получить текущего пользователя в ASP.NET MVC - PullRequest
258 голосов
/ 05 ноября 2008

В модели форм я использовал текущего зарегистрированного пользователя по:

Page.CurrentUser

Как получить текущего пользователя внутри класса контроллера в ASP.NET MVC?

Ответы [ 20 ]

250 голосов
/ 05 ноября 2008

Если вам нужно получить пользователя из контроллера, используйте свойство User контроллера. Если вам это нужно из представления, я бы заполнил то, что вам конкретно нужно, в ViewData, или вы могли бы просто позвонить пользователю, так как я думаю, что это свойство ViewPage.

188 голосов
/ 27 мая 2009

Я обнаружил, что User работает, то есть User.Identity.Name или User.IsInRole("Administrator").

55 голосов
/ 05 ноября 2008

Попробуйте HttpContext.Current.User.

Открытое общее свойство Current () As System.Web.HttpContext
Участник System.Web.HttpContext

Резюме:
Получает или задает объект System.Web.HttpContext для текущего HTTP-запроса.

Возвращаемые значения:
System.Web.HttpContext для текущего HTTP-запрос

36 голосов
/ 22 сентября 2013

Вы можете получить имя пользователя в ASP.NET MVC4 следующим образом:

System.Web.HttpContext.Current.User.Identity.Name
20 голосов
/ 25 марта 2009

Я понимаю, что это действительно старая версия, но я только начинаю работать с ASP.NET MVC, поэтому я решил добавить два цента:

  • Request.IsAuthenticated сообщает, аутентифицирован ли пользователь.
  • Page.User.Identity дает вам личность вошедшего в систему пользователя.
16 голосов
/ 05 ноября 2008

Я использую:

Membership.GetUser().UserName

Я не уверен, что это будет работать в ASP.NET MVC, но оно того стоит:)

11 голосов
/ 08 сентября 2010

войти в систему имя пользователя: System.Web.HttpContext.Current.User.Identity.Name

9 голосов
/ 22 июня 2013

Чтобы сослаться на идентификатор пользователя, созданный с использованием простой аутентификации, встроенной в ASP.NET MVC 4 в контроллере для целей фильтрации (это полезно, если вы сначала используете базу данных и Entity Framework 5 для генерации привязок кода и таблиц структурированы так, что используется внешний ключ к идентификатору пользователя), вы можете использовать

WebSecurity.CurrentUserId

после добавления оператора использования

using System.Web.Security;
7 голосов
/ 12 января 2017

Имя пользователя с:

User.Identity.Name

Но если вам нужно получить только идентификатор, вы можете использовать:

using Microsoft.AspNet.Identity;

Таким образом, вы можете получить непосредственно идентификатор пользователя:

User.Identity.GetUserId();
5 голосов
/ 17 августа 2015

Использование System.Security.Principal.WindowsIdentity.GetCurrent().Name.

Получит текущего пользователя Windows, вошедшего в систему.

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