0

私のウェブサイトで

  1. ログイン前にフォームに入力してセッションにデータを保存する
  2. Linkedin IDを使用してログイン
  3. ページロードでログインした後、セッションからデータを取得し、SQL データベースに挿入します

私の問題は、セッションを取得している場合と、セッションを取得していない場合があることです(セッションが失われます)(ほとんどの場合、3〜4人が同時にテストする場合... 2〜3人がセッションを取得し、1〜2人がセッションを取得しません)

誰でも何が問題なのか教えてもらえますか? どうすればこの問題を解決できますか?

このタスクを実行する別の方法はありますか?

ログイン前にセッションをストローする Session["sesObjFundRaiseSeek"] = objFundRaiseSeek;

ログイン後の取得

if (Session["sesObjSellSeekBL"] != null)
 {
   clsSellSeekBL ObjSellSeekBL = (clsSellSeekBL)Session["sesObjSellSeekBL"];  
 }
4

1 に答える 1

0

セッションが短時間でタイムアウトになる問題はありますか? web.config 内でデフォルトのセッション タイムアウトを入力できます。これは、system.web のすぐ下で行われます。480 が分数である例を次に示します。

<sessionState timeout="480"></sessionState>

詳細については、http: //msdn.microsoft.com/en-us/library/h6bb9cz9 (v=vs.71).aspx を参照してください。

別の解決策は、Cookie を使用することです。Cookie を使用してユーザーの状態情報を保存することをお勧めします。Cookie はユーザーのコンピューターに保存されるため、設定が簡単です。

以下の例では、有効期限を 100000 日後に設定しています。

HttpCookie myCookie = new HttpCookie("sesObjSellSeekBL");
myCookie.Value = Convert.ToString(user_id); //store the user id here at the very least
myCookie.Expires = DateTime.Now.AddDays(100000d);
Response.Cookies.Add(myCookie);

Cookie を確認する方法は次のとおりです。

if (Request.Cookies["sesObjSellSeekBL"] != null) 

ユーザーをログアウトする方法は次のとおりです。

HttpCookie myCookie = new HttpCookie("sesObjSellSeekBL");
myCookie.Expires = DateTime.Now.AddDays(-1d);
Response.Cookies.Add(myCookie);
于 2013-07-03T14:42:48.333 に答える