重定向到登录页面 asp.net

Posted

技术标签:

【中文标题】重定向到登录页面 asp.net【英文标题】:Redirect to login page asp.net 【发布时间】:2015-10-15 04:03:33 【问题描述】:

我有一个用 asp.net 制作的网站(vb.net 作为后端)。 该站点位于http://localhost/TEST。 如果我访问像 http://localhost/TEST/about.aspx 这样的任何 aspx 文件,我会被重定向到登录 aspx。在 Visual Studio 中将 Login.aspx 设置为起始页。

问题是,如果我访问http://localhost/TEST,我会来到一个包含所有 aspx 文件列表的目录。

如何将访问http://localhost/TEST 的任何用户重定向到http://localhost/TEST/login.aspx ??

【问题讨论】:

【参考方案1】:

您的帖子中包含一些混合概念。让他们组织起来。

首先,VS 有一个起始页。这是您在使用或不使用调试器的情况下运行网站时使用的起始页面。仅当您从 VS 运行站点时才重要。一旦部署到 IIS,就不再有任何影响。

您要求的是用户在未明确指定页面时被重定向到的默认页面。您可以像这样在 web.config 中配置默认​​页面:

<system.webServer>
  <defaultDocument>
    <files>
      <clear />
      <add value="About.aspx" />
    </files>
  </defaultDocument>
</system.webServer>

您不想将 Login.aspx 指定为默认页面。指定主页。如果用户已经登录,那么他们不应该被自动导航到登录页面,您希望他们转到某个主页。

登录页面听起来好像已经正确配置,因为您提到当您转到 about.aspx 时,它会重定向到 login.aspx。这是在 web.config 文件的身份验证部分处理的。如果用户未通过身份验证,则会重定向到登录页面。

<authentication mode="Forms">
     <forms name="asp.ASPXAUTH" loginUrl="login.aspx" protection="All" path="/"/>
</authentication>

我认为您需要更改的唯一部分是将 defaultDocument 部分添加到 web.config。

【讨论】:

【参考方案2】:

在您的文件夹 TEST 中,创建一个名为“default.aspx”的空白网页,如果访问者未登录,则将其重定向到登录页面,如果已登录,则将其重定向到关于页面。

【讨论】:

【参考方案3】:

您可以简单地使用web.config 文件并禁用目录浏览。

<system.webServer>
  <directoryBrowse enabled="false" />
</system.webServer>

【讨论】:

以上是关于重定向到登录页面 asp.net的主要内容,如果未能解决你的问题,请参考以下文章

重定向到登录页面时,asp.net/iis 不附加 ReturnUrl

ASP.NET 成员按用户角色重定向到页面

ASP.NET Core 3.1 和 Angular:将 api 调用重定向到登录页面

如果未使用 C# 登录 ASP.NET Web 表单,则将用户重定向到登录

ASP.NET Web API 2 Bearer Token 重定向到登录页面而不是返回 401

新的 Asp.Net MVC5 项目生成一个无限循环到登录页面