【发布时间】:2013-11-26 13:54:56
【问题描述】:
在我的 ASP .Net 应用程序(不是 MVC,只是 ASP .Net)中,我有几个 Web 表单,需要限制用户直接访问多个网页。
但在来自其他页面的应用程序链接中,根据应用程序的功能,应该能够重定向(Response.Redirect或Form提交post或get方式)到那些页面但严格不能直接在浏览器中输入url和访问它们。
我在那些页面加载事件(需要限制直接访问)中尝试了以下操作并且工作得很好。
if (Request.UrlReferrer == null)
{
Response.Redirect("~/Index.aspx", true);
}
但我遇到的问题是我对 ASP .Net 比较陌生,想知道这是否是最好的方法。
1)。主要是我搜索但需要知道是否可以使用 web.config 文件完成此操作。如果是这样,如果有人能解释 web.config 文件应该如何完成这项工作,将不胜感激......
2)。如果用户在站点托管域名中输入错误的 URL,我也想重定向用户...为此,我在 web.config 中执行了以下操作,但想知道这是否正确。谢谢...
<customErrors mode="On" defaultRedirect="~/Index.aspx">
<error statusCode="404" redirect="~/Index.aspx" />
</customErrors>
【问题讨论】:
-
通常您会重定向到特定的“找不到页面”或“404 错误”页面,而不是返回到索引 - 这很可能会使用户感到困惑,并被视为“黑暗做法”。见codinghorror.com/blog/2007/03/…。关于重定向问题,这应该有多安全?如果正在检查的只是推荐的存在,那么没有什么可以阻止用户使用 JavaScript 将自己从公共页面重定向到所谓的“安全”页面。也许你应该考虑代币?
标签: c# asp.net web-config