ASP.NET MVC在URL中使用ID

时间:2010-09-02 14:04:12

标签: asp.net-mvc asp.net-mvc-routing

我知道MVC中的默认路由包括一个id param,它经常映射到存储在数据库中的实体的标识。现在,这通常是可以的,但是当你不希望某人能够操纵它时呢?坦率地说,在许多商业应用程序中,这是非常常见的。例如,出于显而易见的原因,您不希望有人在URL中更改帐号(不是最好的示例,但是您明白了)。因此,您需要在每个请求中针对登录用户验证帐号。显然,这不是一个现实的解决方案,在webforms中很多人会在会话中存储类似的内容。我试图在MVC中很少依赖会话,但除此之外我会去老学校并使用隐藏的字段吗?

其他人如何处理这个问题?

2 个答案:

答案 0 :(得分:1)

实际上,为了获得良好的安全性,您仍然必须在每个请求上验证经过身份验证的用户权限。您可以扩展Authorize属性以更好地满足您的需求。 隐藏字段比url参数稍微好一些,因为它们可以通过使用IE开发人员工具或Firebug轻松更改。

答案 1 :(得分:0)

在我工作的一个地方处理的方法是检查Request对象中的referrer。如果推荐人在当前域中是空白或不是,请不要向他们显示页面。

Request.UrlReferrer

它实际上运作得很好。