ASP.NET URL重定向

时间:2009-12-09 11:33:07

标签: asp.net url redirect

当我输入http://localhost/Admin时,我想要带我到页面http://localhost/Something/Login.aspx。我怎么能这样做?

1 个答案:

答案 0 :(得分:5)

您要找的是Forms Authentication。接下来是一个非常简短的介绍。

在验证用户身份后,您需要创建一个这样的调用的登录页面:

FormsAuthentication.RedirectFromLoginPage(userName);

然后您需要连接web.config文件中的登录页面:

<system.web>
  <authentication mode="Forms">
    <forms loginUrl="~/Something/Login.aspx" />
  </authentication>
</system.web>

此外,您需要告诉框架~/Admin/以下的所有网址都要求用户进行身份验证。这可以通过在该文件夹中添加另一个web.config文件来完成:

<system.web>
  <authorization>
    <deny users="?" />
    <allow users="*" />
  </authorization>
</system.web>

阅读上面链接的文章,或在网上搜索“ASP.NET表单身份验证”,您很快就会走上正轨。


编辑1 - 如果您只想“重定向到特定网址”,那么这就足够了:

Response.Redirect("~/Something/Login.aspx")

根据您在问题中提到的网址,您似乎正在尝试执行某种身份验证/授权方案。如果是这样,表单身份验证是一个更好的答案。


编辑2 - 如果您想重写,而不是重定向,请~/Admin~/Something/Login.aspx发出请求,您可以通过映射网址来实现在根web.config文件中映射

<system.web>
    <urlMappings>
        <add url="~/Admin/Default.aspx" mappedUrl="~/Something/Login.aspx"/>
    </urlMappings>
</system.web>

在大多数设置中,如果请求的URL以已知后缀(例如.aspx)结尾,则Web服务器将仅将请求传递给ASP.NET。在欺骗Web服务器将~/Admin的请求传递给ASP.NET的方法中,是使用Web服务器中的“默认文档”功能。为此,您必须在Default.aspx文件夹中添加名为~/Admin的空文件。