Asp.Net Web API跨层传递用户

时间:2016-06-27 05:49:39

标签: asp.net asp.net-web-api

我正在为我的Web API服务使用基于令牌的身份验证。但我想跟踪创建,创建所有记录的信息。因此,我在HttpContext.Current.User中使用userId设置GenericIdentityAuthenticationFilter。但我不想从我的数据层访问HttpContext,因为我认为数据层不应该对HttpContext了解任何内容。

那么,有没有通过图层传递用户信息的最佳实践没有`HttpContext'?

1 个答案:

答案 0 :(得分:2)

将您的校长分配给HttpContxt.Current.UserThread.CurrentPrincipal

然后,您可以从代码中的任何位置访问Thread.CurrentPrincipal,当然甚至可以从没有引用System.Web的项目中访问。{/ p>