如何使ASP.NET MVC控制器的GET方法只从链接调用?

问题描述:

我在我的Account控制器中有此Confirm方法,当用户点击link时,我将其重定向到他们的电子邮件地址以激活其帐户。返回的视图显示激活是否成功的消息。如何使ASP.NET MVC控制器的GET方法只从链接调用?

问题是,如果用户输入网址.../account/confirm/...,他们也将能够看到此视图(此视图应仅适用于已收到带链接的电子邮件的用户)。

有什么办法可以指定只能从链接调用这个方法吗?

没有“从链接调用”这样的事情。有人在URL中输入内容,从邮件中复制粘贴URL或直接单击邮件中的链接,所有这些在控制器中都完全相同。

唯一的区别是从HTTP(非HTTPS)页面点击链接,其中有时会设置引用链接。你不应该依赖那个,因为它是用户提供的,因此可以由用户修改。某些浏览器设置或插件完全禁用了引荐来源。

添加一个令牌到URL并检查。如果它不存在或无效,则显示一个404或任何你想要的。

+0

谢谢!你为我节省了很多时间... –