MVC4:阻止用户在地址栏中键入和导航任何ControllerName / ActionName

时间:2014-04-10 11:05:53

标签: asp.net-mvc-4

在我的MVC应用程序中,我不希望任何用户键入浏览器的地址栏并直接导航到任何控制器操作。我可以为整个应用程序启用它吗?如果是,如何?能告诉我这个概念名称吗?

此外,我不希望通过Request.URLReferrer执行此操作,因为它有自己的安全风险(每Avoiding user to navigate to a view by entering url in the browser

提前致谢!

1 个答案:

答案 0 :(得分:1)

您需要使用自定义操作过滤器属性,请参阅:

http://www.asp.net/mvc/tutorials/hands-on-labs/aspnet-mvc-4-custom-action-filters

****更新:**

正如 Parsanna 在评论中提到的那样,

您可以使用操作方法的[ChildActionOnly]属性确保不直接调用它,或使用操作中的ControllerContext.IsChildAction属性来确定是否要重定向。< / p>

请参阅:Asp.net mvc How to prevent browser from calling an action method?