![](/img/trans.png)
[英]ASP.Net Httpcontext.Current.User shows last user who spawned thread
[英]ASP.Net MVC 5 - Correct way to access HttpContext.Current.User outside of controller?
我有一个ASP.NEt MVC 5应用程序,该应用程序使用服务来访问有关用户的信息。
目前,我将它作为参数传递给服务类中的方法,或者在需要的每个方法中执行以下操作:
if (HttpContext.Current.User.Identity.IsAuthenticated)
{
var user = HttpContext.Current.User;
// do some stuff
}
我如何重构代码,比如说将其注入到类的构造函数中,以便它可用于该类中的任何方法,或者它是否正确修改了我目前的操作方式(例如,将其作为参数传递)?
public class ViewModelBuilderService : IViewModelBuilderService
{
private readonly IUnitOfWork _unitOfWork;
public ViewModelBuilderService(IUnitOfWork unitOfWork)
{
_unitOfWork = unitOfWork;
}
// Other methods...
}
首先,为什么您的业务层完全需要了解HttpContext
。 如果根本不需要,则不应该将数据存储到变量中,然后将其传递给您正在调用的方法。 当前您正在遵循的方法。
可能您可以尝试访问System.Threading.Thread.CurrentPrincipal
以获得身份验证上下文
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.