2016-04-30 18 views

回答

2

您可以將它存儲在Session。將其分配到控制器中,如Session["UserName"] = "John Doe";然後,在視圖中,您可以直接訪問@Session["UserName"],或通過ViewModel將其傳遞。

+0

謝謝。這是我正在尋找的解決方案。 –

2

將UserName設置爲AuthCookie;

FormsAuthentication.SetAuthCookie(UserName, false); 

在Global.asax中AuthenticateRequest方法,你可以做一個公共票字符串變量和解密驗證cookie。

FormsAuthenticationTicket ticket; 
public static string tempTicket = ""; 

protected void Application_AuthenticateRequest() { 

     HttpCookie authCookie = Request.Cookies[FormsAuthentication.FormsCookieName]; 
     if (authCookie != null) 
     { 
      ticket = FormsAuthentication.Decrypt(authCookie.Value); 
      if (ticket != null) 
      { 
       tempTicket = ticket.Name; 
      } 
      else 
      { 
       tempTicket = ""; 
      } 
     } 

    } 

而且你可以調用在Global.asax中定義的tempTicket,你可以像這樣;

string globalTicketVariable = MvcApplication.tempTicket; 

更新1:數據類型缺失,我只是宣佈他們。這裏有一個使用它的例子。

public ActionResult Login(){ 
      if (globalTicketVariable != null && globalTicketVariable != "") 
      { 
        DataContext Context = new DataContext(); 
        User TempUser = Context.User.Where(x => x.UserID == (int)globalTicketVariable).FirstOrDefault(); 
        if (TempUser != null) 
        { 
         return RedirectToAction("Success", "SuccessPage"); 
        } 
      } 
      return View(); 
} 

希望有助於。

相關問題