在我的ASP .Net应用程序(非MVC,Just ASP .Net)中,我有几个Web表单,需要限制用户直接访问多个Web页面。
但是在其他页面的应用程序链接中,根据应用程序的功能,应该能够将这些页面中的(Response.Redirect或表单提交或者获取方式)重定向到那些页面,但严格来说不能直接将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>
答案 0 :(得分:2)
您可以将其添加到您的web.config文件中以限制特定用户:
<authorization>
<allow users="user1, user2"/>
<deny users="?"/>
</authorization>
<location path="AccessDenied.aspx">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
在C#上,您可以使用Response.Redirect
protected void Application_EndRequest(Object sender, EventArgs e)
{
if (HttpContext.Current.Response.Status.StartsWith("401"))
{
HttpContext.Current.Response.ClearContent();
Response.Redirect("AccessDenied.aspx");
}
}