【问题标题】:default document not displaying complete url默认文档不显示完整的 url
【发布时间】:2012-12-28 07:01:39
【问题描述】:

我对 iis 设置的默认文档有疑问。在我的站点 (http://mysite) 中,我提供了默认文档作为登录页面。当用户输入 url (http://mysite) 时,它会将用户重定向到登录页面,但不会显示完整的 url (http://mysite/login.aspx)。看起来默认文档执行 server.transfer 而不是 response.redirect。因此,当用户输入他们的凭据然后单击登录时,它会再次将他们重定向到登录并从那里正常工作。所以用户必须输入他们的凭据两次。

我的应用是在 .NET 3.5 上开发的。

有没有办法可以实现response.redirect。

【问题讨论】:

    标签: url iis .net-3.5


    【解决方案1】:

    使用 index.html 作为基本目录中的默认文档。在此 index.html 中,使用元刷新或 javascript 重定向到您的 login.aspx 页面。请参阅以下示例元刷新代码。

    你的项目

    website 
       index.html
       secure/login.aspx
    

    index.html

    <!DOCTYPE html>
    <html>
    <head>
    <title>YOUR PROJECT NAME</title>
        <meta http-equiv="refresh" content="0;URL='http://www.YOURDOMAIN:COM/secure/login.aspx'" />    
    </head>
    
    <body>
        <p> Click to   
            <a href="http://www.YOURDOMAIN:COM/secure/login.aspx">Login</a>
       </p> 
    
    </body>
    
    </html>
    

    【讨论】:

      【解决方案2】:

      在与默认文档相同的文件夹中,放置名为 web.Config(无 .txt、.xml 或任何其他扩展名)的文本文件,其内容如下:

      <?xml version="1.0"?>
      <configuration>
          <system.webServer>
              <rewrite>
                  <rules>
                      <rule name="Redirect to login" stopProcessing="true"> 
                          <match url=".*" />
                          <conditions>
                               <add input="{URL}" pattern="^/$" />
                          </conditions>
                          <action type="Redirect" url="/login.aspx" redirectType="Permanent" />
                      </rule>
                  </rules>
              </rewrite>
          </system.webServer>
      </configuration>
      

      【讨论】:

      • 嗨,你的意思是我应该在我的登录页面所在的文件夹中放置另一个 web.config 吗?我的登录页面位于不同的文件夹中。它不是直接在根文件夹下。
      • 另一个?在一个文件夹中,一个文件名只能使用一次。如果您在该文件夹中有现有的 web.config,则必须与此 XML 代码合并。
      • 可能比接受的解决方案更好,谢谢!
      【解决方案3】:

      在您的登录页面的 Page_Init 中写入以下行。

      Protected Sub Page_Init(sender As Object, e As System.EventArgs) Handles Me.Init
          If Not MyBase.IsPostBack Then
              If HttpContext.Current.Request.Url.ToString.Contains("Login") = False Then
                  Response.Redirect("~/Login.aspx")
              End If
      End Sub
      

      【讨论】:

        猜你喜欢
        • 2021-04-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-04-22
        • 1970-01-01
        • 2018-03-02
        • 1970-01-01
        相关资源
        最近更新 更多