在我们的应用程序中,我们使用安全功能,以其他方式在路上创建id:
我们有例如:http://some.com/controller/action/12
在安全的情况下,它将是:http://some.com/controller/action/bs16gz
我们需要阻止自动保护(读取:不要在每个控制器中保护和取消安全ID)。所以它应该是一般解决方案,将在所有应用程序中自动实现。
有什么想法吗?
---- 为什么我们需要它? -----
我们希望阻止用户在QueryString中更改id以查找另一个项目
Exmaple:http://some.com/controller/action/12是一条记录,然后用户将id更改为13并查看另一条记录。我们的系统需要阻止这种行为。
答案 0 :(得分:4)
我想知道你为什么需要那个。如果您不希望某人“在中间”看到这些ID,请使用SSL保护您的HTTP流量。如果您不希望用户访问其他用户的内容,请确保安全性。
但如果你仍然在保护身份证后,我认为模型绑定器是可行的方法:
class MyController
{
ActionResult Index(SecureID id)
{
var resource = ResourceRepository.Get<Resource>(id); // implicit conversion to long