在IIS Express中使用ssl时如何指定端口?

时间:2013-01-01 18:08:15

标签: asp.net-mvc ssl iis-express

使用vs2012,.net 4.5,mvc4。我的项目有部分在ssl下。 我在IIS Express下运行我的项目。在项目属性中:

>SSL Enabled: True
>SSL Url: https://localhost:44300/
>URL: http://localhost:18000/

该项目运行良好。如果您点击F5,浏览器将打开,网站位于>http://localhost:18000/ 并且所有常规(http)页面都可以正常工作。 但是如果你点击登录页面的链接,例如ssl protected,(控制器中的[RequireHttps]),它会尝试转到

>https://localhost/Account/LogOn

这是不正确的,因此在404上失败。 如果你手动去

>https://localhost:44300/Account/LogOn 

登录页面工作正常。 问题是:当需要https时,如何使事物转到正确的地址?

1 个答案:

答案 0 :(得分:1)

使用如下重写标记配置web.config文件:

<rewrite>
  <rules>
    <rule name="Secure Account Controller" enabled="true" stopProcessing="true">
      <match url="^account" ignoreCase="true">
        <conditions logicalGrouping="MatchAll" trackAllCaptures="true">
          <add input="{HTTPS}" pattern="off"/>
          <add input="{HTTP_HOST}" pattern="([^/:]*?):[^/]*?"/>
        </conditions>
        <action type="Redirect" url="https://{c:1}:44300{URL}"/>
      </match>
    </rule>
  </rules>
</rewrite>

上述代码可以通过IIS面板轻松生成。