0

我有一个用于创建记录的 GET 操作。因为页面有点动态,所以我不使用模型来保存数据。我去做一些 OAuth,只是稍后返回创建屏幕。为了将数据传回,我使用查询字符串进行重定向。我在 GET 操作中解析查询字符串,然后显示视图。问题是,查询字符串显示在浏览器中。这将显示伪敏感数据。

由于我只使用查询字符串来传输数据,我想知道是否可以将查询字符串扔掉以防止它出现在浏览器上。

否则,有没有办法在不重定向的情况下进行另一个操作?我发现,如果我直接调用“其他”动作方法,它会尝试找到原始动作的视图。我可以明确地将return View(viewModel)行更改为,return View("create", viewModel)但这似乎真的很脏。

4

2 回答 2

2

您应该考虑更改操作以接受 POST 请求。至少这样可以防止敏感信息出现在浏览器中。为提高安全性,您的网站应通过 SSL 提供服务。

您可以尝试的另一件事是加密敏感值或整个查询字符串。唯一的问题是,除非您要求用户登录,否则这也将保留在浏览器的历史记录中。

于 2012-01-22T04:00:25.140 回答
0

看起来您的操作方法正在尝试做太多事情。身份验证/授权是一个单独的问题,不应成为操作方法的一部分。最好将身份验证工作移到操作过滤器中。

创建一个扩展授权属性的类并覆盖其 OnAuthorization 方法来完成您的授权工作。

这将释放您的控制器操作方法来接受 POST 请求。

于 2012-01-22T17:55:52.100 回答