asp.net 変数が消える 値を保持するセッション変数を使おう

変数が消える

asp.net で開発しています。

グローバルな領域に変数を定義したのですが、メソッド間をまたいで変数を利用しようとするとリセットされてる。

メソッド間でまたがっても利用できるようにすればどのようにすればよいかです。

webアプリで使うセッション変数

ブラウザを立ち上げて、web閲覧を始めるとサーバからクライアントに向けてセッションIDがふられます。そのセッションIDと紐づけて格納されるのがセッション変数です。

このセッション変数は、複数の画面から確認する事が可能になります。

ブラウザを立ち上げて接続をすると固有のセッションIDがふられる事になり、そのユーザ単位に、変数を扱う事が可能になります。

セッション変数の使い方

Session["変数名"]

利用例

SMSで送信するパスワードをセッション変数に代入

            Random rnd = new Random();
            Session["SmsPinCode"] = rnd.Next(100000, 999999);

送られてきたPINコードを入力し、送ったPINコードと合っているか確認する

            try
            { 
            if (int.Parse(PinCode.Text) == (int)Session["SmsPinCode"])
                l_Ninsho.Text = "0K";
            else
                l_Ninsho.Text = "NG";
            }
            catch
            {
                l_Ninsho.Text = "PINコードは数値のみ";
            }

ページ間でも受渡可能

この方法を取る事により、メソッド間での変数の受け渡し、ページ間での変数の受け渡しが可能になります。