#asp.net-mvc #action-filter
#asp.net-mvc #действие-фильтр
Вопрос:
Я создаю пользовательский фильтр действий для asp.net MVC.
В OnActionExecuting()
методе.
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
string userName = ?????// how can I get this?
}
Мне нужно узнать текущее имя пользователя (я использую аутентификацию в формах)
В контроллере я могу просто сделать User.Identity.Name
Есть ли способ получить имя пользователя в ActionFilter?
Ответ №1:
string userName = filterContext.HttpContext.User.Identity.Name;
И если вы хотите сначала проверить, есть ли аутентифицированный пользователь:
string userName = null;
if (filterContext.HttpContext.User.Identity.IsAuthenticated)
{
userName = filterContext.HttpContext.User.Identity.Name;
}
Комментарии:
1. Ну, это было невероятно просто, не уверен, почему мне так трудно его найти. Еще раз спасибо, Дарин!
2. @DarinDimitrov Как получить идентификатор пользователя вместо имени? В действии контроллера я могу просто использовать
User.Identity.GetUserId();