2017-11-29 29 views
0

私のASP.Netアプリケーションでは、Iamは1つのマスターページと2つのコンテンツページを使用しています。 "UserID"のような個々のユーザーのために、アプリケーション間でセッション変数にアクセスする必要があります。セッション変数とマスターページ

この変数はコンテンツページでのみ設定されるため、別のコンテンツページを開いたときに変数に基づいてメッセージが表示されます。

例:コンテンツPage1.aspx.cs

セッション[ "ユーザーID"] = "USR15289" で

。マスターPage.aspx

VARユーザID = '<% =セッション[ "ユーザーID"]%>' JSでそのセッション変数にアクセスしよう。

[コンテンツ]ページ1をクリックすると、セッション変数が正しく設定されます。コンテンツページ2をクリックしましたが、マスターページのセッション変数が「」と表示されています。次に、「コンテンツ」ページ1をもう一度クリックすると、セッション変数が「USR15289」として表示されます。

問題点セッション変数は最初のクリックでは表示されず、2回目のクリックでのみ表示されます。

何か問題がありますか?私は何かを逃していますか?

答えて

0

私の経験として:

セッションよりもクッキーを使用するほうがはるかに優れています。

Response.Cookies["userName"].Value = "patrick"; 
Response.Cookies["userName"].Expires = DateTime.Now.AddDays(1); 

HttpCookie aCookie = new HttpCookie("lastVisit"); 
aCookie.Value = DateTime.Now.ToString(); 
aCookie.Expires = DateTime.Now.AddDays(1); 
Response.Cookies.Add(aCookie); 

裏読み:

if(Request.Cookies["userName"] != null) 
    Label1.Text = Server.HtmlEncode(Request.Cookies["userName"].Value); 

if(Request.Cookies["userName"] != null) 
{ 
    HttpCookie aCookie = Request.Cookies["userName"]; 
    Label1.Text = Server.HtmlEncode(aCookie.Value); 
} 

このlinkを参照してください。

+0

ありがとう@redsのようなものにアクセスする前にセッションがnullでない確認していることを確認し、これはIAMのが探しものです。 – Elango

0

コードに間違いはありません。あなたの必要性をまず知ってください。 セッション変数に値を代入したページを最初に呼び出す必要があります。

あなたの場合、まずPage1をクリックします。 はあなたが

if(session["UserID"] != null) 
    { 
    } 
関連する問題