通过在浏览器中输入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作为起点)来防止未经授权的客户端调用操作方法。
- 在ASP.Net Identity 2.0上包含属性UserManager.Users.ToListAsync和UserManager.FindByIdAsync
- 由于已使用MVC 4处理了DbContext,因此无法完成操作
- 在ASP.NET MVC中将多个参数传递给控制器; 另外,在LINQ-to-SQL中生成即时查询
- 在bundleconfig中添加bootstrap在asp.net mvc中不起作用
- 使用Windows身份validation时,MVC5重定向到Login.aspx
- Asp MVC:如何从ApplicationUser获取角色
- 如何在Visual Studio 2008中自动发布构建网站?
- User.Identity.GetUserId是否已缓存或每次从数据库中获取?
- 在ASP.NET MVC中发布/重定向/获取模式