Get username on ActionExecutedContext for MVC?

642 views Asked by At

How can I get the name of the currently logged in user in MVC? I tried below codes I can get date and methodname but not get user name.

public void OnActionExecuted(ActionExecutedContext filterContext)
{
    AcibademUniversitesiDBEntities model = new AcibademUniversitesiDBEntities();
    Logging logbilgi = new Logging();

    logbilgi.date= DateTime.Now.ToString();
    logbilgi.Method = filterContext.ActionDescriptor.ActionName;
    logbilgi.text= filterContext.ActionDescriptor.ControllerDescriptor.ControllerName;
    //logbilgi.user= filterContext.RequestContext.HttpContext.User.Identity.Name;
    //logbilgi.user= filterContext.HttpContext.User.Identity.Name;
    logbilgi.user= HttpContext.Current.User.Identity.Name;
    model.Logging.Add(logbilgi);
    model.SaveChanges();
}

public void OnActionExecuting(ActionExecutingContext filterContext)
{
    AcibademUniversitesiDBEntities model = new AcibademUniversitesiDBEntities();
    Logging logbilgi = new Logging();

    logbilgi.date= DateTime.Now.ToString();
    logbilgi.Method = filterContext.ActionDescriptor.ActionName;
    logbilgi.text= filterContext.ActionDescriptor.ControllerDescriptor.ControllerName;
    //logbilgi.user= filterContext.RequestContext.HttpContext.User.Identity.Name;
    //logbilgi.user= filterContext.HttpContext.User.Identity.Name;
    logbilgi.user= HttpContext.Current.User.Identity.Name;
    model.Logging.Add(logbilgi);
    model.SaveChanges();
}
2

There are 2 answers

1
dajo On

In Web.config, within system.web, do you have something like this?

<authentication mode="Windows" />
0
dajo On

It's a long shot, but would you try this?

logbilgi.user = filterContext.HttpContext.Current.User.Identity.Name;