2016-04-30 13 views

答えて

2

Sessionに保存することができます。 Session["UserName"] = "John Doe";のようなコントローラーに割り当てます。次に、ビューで@Session["UserName"]に直接アクセスするか、ViewModelで渡すことができます。

+0

ありがとうございます。これは私が探していた解決策です。 –

2

ユーザー名を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(); 
} 

希望小冊子。

関連する問題