【问题标题】:ASP.NET URL redirectionASP.NET URL 重定向
【发布时间】:2010-12-24 19:18:34
【问题描述】:

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

【问题讨论】:

  • 您希望此人登录您网站上的受保护区域还是只需要重定向?请澄清。
  • 您能详细说明一下吗?您是否希望用户登录后才能访问某些页面?或者您只是想执行重定向? WebForms 还是 MVC?
  • 我只想重定向到特定的 URL。
  • Response.Redirect("~/Something/Login.aspx") 应该可以解决问题
  • 我不想在 (C#) 后面重定向表单代码。我想把网址localhost/Admin改写成localhost/Something/Login.aspx

标签: asp.net url redirect


【解决方案1】:

您要查找的内容称为Forms Authentication。下面是一个非常简短的介绍。

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

FormsAuthentication.RedirectFromLoginPage(userName);

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

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

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

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

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


编辑 1 - 如果您真正想做的只是“重定向到特定 URL”,那么这就足够了:

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

从您在问题中提到的 URL 看来,您似乎正在尝试执行某种身份验证/授权方案。如果这是真的,那么表单身份验证是一个更好的答案。


编辑 2 - 如果您想重写,而不是将请求从 ~/Admin 重定向到 ~/Something/Login.aspx,您可以通过在根目录中映射 URL 映射来实现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 服务器中的“默认文档”功能。为此,您必须在 ~/Admin 文件夹中添加一个名为 Default.aspx 的空文件。

【讨论】:

    猜你喜欢
    • 2022-01-16
    • 1970-01-01
    • 1970-01-01
    • 2021-03-03
    • 1970-01-01
    • 2012-02-23
    • 1970-01-01
    • 2012-07-22
    • 1970-01-01
    相关资源
    最近更新 更多