![](/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.