如何通过更改 ASP.NET MVC 中的 Url 来阻止对控制器的访问?

Posted

技术标签:

【中文标题】如何通过更改 ASP.NET MVC 中的 Url 来阻止对控制器的访问?【英文标题】:How to block access to controller via changing Url in ASP.NET MVC? 【发布时间】:2011-11-15 20:40:54 【问题描述】:

当用户点击按钮时,我只想访问带有成功消息的页面...

通过更改网址,例如.../Success,我希望我的网站将用户重定向到上一页。

如何通过 ASP.NET MVC 3 做到这一点?

【问题讨论】:

【参考方案1】:

一种快速的方法是在重定向的动作中设置一个包含随机数的会话,并将随机数作为参数传递给另一个动作。

在另一个action(redirected one)里面,比较session的值和action的参数。如果值相等,则用户通过按下按钮到达那里,否则,用户通过更改 URL 到达那里。 希望对您有所帮助。

【讨论】:

【参考方案2】:

您可以使用以下命令重定向到特定操作:

RedirectToAction(string actionName);

如果动作属于另一个控制器,你可以使用这个重载:

RedirectToAction(string actionName, string controllerName);

【讨论】:

我知道,但是如果只有他手动更改 url,我想重定向用户...如果用户点击发布按钮,没关系)))) 如果用户尝试手动更改成功页面的 url,您的意思是要将用户重定向到上一页吗? 不,我的意思是如果用户在浏览器的 url 中写入 .../Success 并点击回车,我想将用户重定向到上一页))))

以上是关于如何通过更改 ASP.NET MVC 中的 Url 来阻止对控制器的访问?的主要内容,如果未能解决你的问题,请参考以下文章

在 ASP.NET MVC 中的下拉列表上触发 jQuery 更改事件并将参数传递给 url 操作

ASP.NET MVC - 输入值更改更新 URL 参数

通过 Url.Action 将参数发送到 asp.net MVC 中的控制器

如何在 ASP.NET MVC 中的 URL 之后允许额外的文本?

如何在 ASP.NET MVC 中的控制器之外生成 URL?

保存数据库控制器类 asp.net mvc5 身份中的更改