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()”

一些链接:

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 回答