ASP.NET重定向到Https问题 - 错误401

时间:2015-07-14 10:30:44

标签: c# asp.net asp.net-mvc asp.net-mvc-4 iis

我们已经为我们的网站实施了https,所以基本上我们所做的就是实现重定向。

       <rewrite>
            <rules>
                <rule name="rule - name" enabled="true" stopProcessing="true">
                    <match url=".*" />
                    <conditions>
                        <add input="{HTTPS}" pattern="off" />
                    </conditions>
                    <action type="Redirect" url="https://yourpath" redirectType="youttype" />
                </rule>
            </rules>
        </rewrite>

重定向工作正常,但我遇到了问题。一些用户已在书签中保存了旧路径,例如此http://applicationName/Account/Login?ReturnUrl=%2f,重定向正在执行此操作 - &gt; https://applicationName/?ReturnUrl=/我收到了您可以在下面看到的错误:

  

401 - 未经授权:由于凭据无效,访问被拒绝。您   没有权限使用。查看此目录或页面   您提供的凭据。

到目前为止我试图解决的问题是在web.config中添加我的appsetting,我看到的一些东西可以解决问题:

<appSettings>
  <add key="autoFormsAuthentication" value="false" />
  <add key="enableSimpleMembership" value="false"/>
</appSettings>

并且还

<authorization>
  <allow users="*"/>
</authorization>

但我仍然遇到与重定向相同的问题。知道如何解决这个问题?

谢谢!

1 个答案:

答案 0 :(得分:1)

尝试根据匹配而不是静态构建您的网址:

<rule name="HTTP to HTTPS redirect" stopProcessing="true">
  <match url="(.*)" />
    <conditions>
      <add input="{HTTPS}" pattern="off" ignoreCase="true" />
    </conditions>
  <action type="Redirect" redirectType="Found" url="https://{HTTP_HOST}/{R:1}" />
</rule>