通过在浏览器中输入url来避免用户导航到视图

我陷入了这样一种情况:我希望通过在浏览器中输入URL来避免用户导航到View。但是,当点击一个按钮,导航到该视图时,可以导航到该视图。

例如:我有一个到ActionResult(Create)的href链接。我希望用户在点击该链接时导航到此视图(Create) ,但不能在浏览器中输入url (/ Create)时导航到该视图

我在这个门户上找到了一些解决方案:

1)使ActionResult成为私有 – 但这会导致Http:404页面找不到错误 ,无论是在浏览器中输入URL还是单击导航到Create ActionResult的链接。

引用链接: 如果直接请求,是否可以阻止某些PartialViews被提供? 2)在ActionResult方法上使用DataAnnotaion [ChildActionOnly] 。但这也没有给我想要的结果,它也给了我一个错误。 相同的错误HTTP:404

3)我尝试使用ControllerContext.IsChildAction,但是alwayz返回值false是否我在链接点击或导入URL时导航到此ActionResult,因此我无法判断该怎么做。如果在一种情况下返回true或在其他情况下返回false我将解决在任何情况下通过重定向我的问题。

Asp.net mvc如何防止浏览器调用动作方法?

帮帮我…

鉴于问题中的评论中的信息,您几乎肯定不想使用Request.UrlReferrer,因为这个值可以被欺骗 ,因此不应该用于任何安全目的。

您几乎肯定希望查看授权filter(特别是您可以使用AuthorizeAttribute作为起点)来防止未经授权的客户端调用操作方法。