Tam*_*arG 30 c# action-filter asp.net-web-api
我使用Web API的MVC4 Web应用程序.我想创建一个动作过滤器,我想知道哪个用户(登录用户)做了动作.我该怎么做?
public class ModelActionLog : ActionFilterAttribute
{
public override void OnActionExecuting(SHttpActionContext actionContext)
{
string username = ??
}
public override void OnActionExecuted(HttpActionExecutedContext actionExecutedContext)
{
??
}
}
Run Code Online (Sandbox Code Playgroud)
Atu*_*ary 55
回答迟到但如果您在过滤器中使用HttpActionContext,这是最佳解决方案您可以随时使用它,如下所述: -
public override Task OnActionExecutingAsync(HttpActionContext actionContext, CancellationToken cancellationToken)
{
if (actionContext.RequestContext.Principal.Identity.IsAuthenticated)
{
var userName = actionContext.RequestContext.Principal.Identity.Name;
}
}
Run Code Online (Sandbox Code Playgroud)
Rah*_*hul 36
你可以试试
public override void OnActionExecuting(System.Web.Http.Controllers.HttpActionContext actionContext)
{
string username = HttpContext.Current.User.Identity.Name;
}
Run Code Online (Sandbox Code Playgroud)
首先检查经过身份验证的用户:
string userName = null;
if (HttpContext.Current.User.Identity.IsAuthenticated)
{
userName = HttpContext.Current.User.Identity.Name;
}
Run Code Online (Sandbox Code Playgroud)
尝试使用
HttpContext.Current.User.Identity.Name
Run Code Online (Sandbox Code Playgroud)
希望这对你有用
| 归档时间: |
|
| 查看次数: |
32447 次 |
| 最近记录: |