2011-10-19 12 views
18

Tworzę niestandardowy filtr akcji dla asp.net MVC.ASP.NET MVC znajdowanie bieżącej nazwy użytkownika w niestandardowym filtrze działania

W metodzie OnActionExecuting().

public override void OnActionExecuting(ActionExecutingContext filterContext) 
{ 
    string userName = ?????// how can I get this? 
} 

muszę dowiedzieć się bieżącą nazwę użytkowników (używam uwierzytelniania formularzy)

W regulatorze można po prostu po prostu zrobić User.Identity.Name

Czy istnieje sposób, aby uzyskać nazwy użytkowników w ActionFilter?

Odpowiedz

42
string userName = filterContext.HttpContext.User.Identity.Name; 

A jeśli chcesz sprawdzić, czy jest uwierzytelniony pierwszy użytkownik:

string userName = null; 
if (filterContext.HttpContext.User.Identity.IsAuthenticated) 
{ 
    userName = filterContext.HttpContext.User.Identity.Name; 
} 
+0

Dobrze, że było bardzo łatwe, nie wiem, dlaczego ma taki problem ze znalezieniem go. Jeszcze raz dziękuję Darin! – twaldron

+0

@twaldron, nie ma za co. –

+0

@DarinDimitrov Jak zdobyć UserId zamiast nazwy? W akcji kontrolera mogę po prostu użyć 'User.Identity.GetUserId();' – Lijo

Powiązane problemy