ASP .Net Web.config

时间:2013-11-26 13:54:57

标签: c# asp.net web-config

在我的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>

1 个答案:

答案 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");
    }
}