是Webapicontroller和httpcontext.current.user中的用户



参考此帖子后,我写了一个用于Web API中使用的基本HTTP身份验证的属性。在属性类中,如果提供的凭据匹配,则我将httpcontext.current.user设置为

 HttpContext.Current.User = new GenericPrincipal(new ApiIdentity(apiUser), new string[] {});
base.OnActionExecuting(actionContext);

但是,当我在API控制器内访问用户时,它没有APIUPER属性。

为什么这是设置身份然后在API控制器中访问它的正确方法?

nope-不幸的是,您必须设置两个。

thread.currentprincipal和httpcontext.user

在您的ASP.NET Web API应用程序中,您不应依靠当前的HttpContext。至于您的问题的答案,将校长设置为Thread.CurrentPrincipal是您想要的:

Thread.CurrentPrincipal = new GenericPrincipal(new ApiIdentity(apiUser), new string[] {});

相关内容

  • 没有找到相关文章