2011-06-21 16 views
2

こんにちは私はセッションのストアユーザー名に問題があります。ログオンページでは、ユーザー名をセッションに保存します。ログオンページのユーザー入力資格情報は、既定のページでリダイレクトされます。私はクラスで必要ですセッション内の変数ストアへのデフォルトアクセス。セッションのASP.NET問題/ページへのリダイレクト

Default.aspxの-Default.aspx.cs

public partial class Default : Page, 
    IHttpHandler, System.Web.SessionState.IRequiresSessionState 
{ 
     string userName = (string) (Session["user"]); 
} 

が、結果はユーザ名があるということです。

Logon.aspx

<script runat="server"> 
    void Login_Click(object sender, EventArgs e) 
    { 
       Session["user"] = tbUserName.Text; 

       //You can redirect now. 
       Response.Redirect(FormsAuthentication.GetRedirectUrl(tbUserName.Text, 
false)); 
} 
</script> 

secodメインページはこちら空の。

ウェブの設定はここにある:

<sessionState cookieless="true" regenerateExpiredSessionId="true" /> 

は、アドバイスをいただき、ありがとうございます。

+0

第2ページでは、そのページが 'Page_Load'にありますか? –

+0

問題を理解するための完全なコードを投稿する必要がありますか? –

答えて

1

なぜのHttpContext HttpContext.Current.User.Identity.Name

編集から直接それを取得しない:私はあなたがページレベルではなく、page_loadまたは別の場所でそれを取得しようとしていると思います。だからあなたはセッションの価値を得ていないのです。

私は、スニペットは、モジュールレベル(コメントでバラRによって示唆したように)状態は、おそらくまだ設定されていないセッションである場合

protected void Page_Load(object sender, EventArgs e) 
{ 
    string userName = (string) (Session["user"]); 
} 
1

のために動作します以下願っています。ページのライフサイクルの一部であるメソッド(page_loadなど)で取得してみてください。

0

更新:これは間違っています。

あなたはリダイレクト時に(cookieless)セッションを失います。クッキーレスセッションはURLに保持され、明示的にリダイレクトすると失われますので、2番目のページのセッションには何もありません。

+0

マイクロソフトの文書によると、リダイレクトURLが絶対パスでない限り、cookielessセッションは維持されるため、相対パスは安全にセッションをそのまま維持する必要があります。つまり、リダイレクト先に依存します。 – Suncat2000

+0

私は訂正しました。 –

関連する問題