2014-11-05 47 views
0

我需要將每個保存請求/用戶的當前用戶名存儲在SQL表中。它是基於MVC 4的應用程序並託管在IIS服務器中。此外,它是一個內部工具和基於NTLM的身份驗證。全局變量如何在MVC 4中起作用?

我已經得到當前用戶的用戶名使用HttpContext.Current.User.Identity.Name我的問題是全局變量如何反應在MVC?當多個請求到來時,「currentUser」變量會發生什麼?當前用戶是否會爲每個請求創建新值?請幫我理解。

示例代碼:

public class ClearCacheController : ApiController 
{ 

    private string currentUser = HttpContext.Current.User.Identity.Name.ToLower(); 

    public void method1() 
    { 
     SaveValue1(currentUser); 
    } 
    public void method2() 
    { 
     SaveValue2(currentUser); 
    } 
    public void method3() 
    { 
     SaveValue3(currentUser); 
    } 
} 

回答

2

控制器被實例化,並設置爲每個唯一的請求。所以,像User.Identity.Name這樣的東西並不是一個真正的全局變量。它是控制器上的一個實例變量。 (嗯,User是控制器上的一個實例變量,而IdentityUser等的實例變量)。總而言之,它只會保持執行特定請求的用戶的價值,而不是任何用戶提出任何請求。

+0

晶瑩剔透!!!謝謝。 – Uba 2014-11-05 19:32:52