0

以下のように、GET メソッドでユーザー認証を防止するためのコードを記述しました。

if (!string.IsNullOrEmpty(Session["UserName"].ToString()))
            {
                MyConnection mycon = new MyConnection();
                string str = "";
                int res = 0;
                if (Request.QueryString.ToString().Contains("ID1"))
                {
                    str = "Delete from PostTable where PostID=" + Request.QueryString["ID1"];
                    res = mycon.IODPost(str);
                }
                return View(AllPostList());
            }
            else
            {
                return RedirectToAction("Home", "Home");
            }

しかし、サインアウト後にブラウザの[戻る]ボタンを押すと、ページは前のページにポストバックされます..これを防ぐにはどうすればよいですか?

4

1 に答える 1

0

あなたの例にはいくつかの悪い習慣があります。

  1. SQL インジェクションに注意してください - ADO.NET SqlCommand および SqlCommandParameter クラスを使用してクエリを作成します。

  2. ASP MVC には、 [Authorized] 、 [AllowAnonymous] などの属性があり、リクエストごとにアプリのワークフローをガイドできます。これらは、コントローラー レバーまたはメソッド レベルで追加できます。

  3. "Session["UserName"].ToString()" に対して null を確認します

いくつかのリンク:

http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.parameters.aspx

http://msdn.microsoft.com/en-us/library/system.web.mvc.authorizeattribute(v=vs.108).aspx#using_authorizeattribute

お役に立てれば

于 2013-07-19T14:43:36.417 に答える