Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在azure上的asp.net vnext网站上禁用端口80_Asp.net_Azure_Ssl_Https_Asp.net Core - Fatal编程技术网

在azure上的asp.net vnext网站上禁用端口80

在azure上的asp.net vnext网站上禁用端口80,asp.net,azure,ssl,https,asp.net-core,Asp.net,Azure,Ssl,Https,Asp.net Core,我有一种感觉,这应该很容易,但我正在努力找到如何做到这一点 我有一个网站,我想限制为HTTPS。它是部署到Azure的asp.net vnext网站(不是mvc)。它提供静态文件,而无需通过ASP.NET管道 在以前版本的asp.net中,可以添加system.webServer规则来执行重定向。这是从vNext中删除的。如果我使用的是Mvc,我可以使用RequireHttps属性,或者我可以编写自定义中间件来执行重定向,但这只在asp.net管道被激活时生效。我的html和js(这是一个SPA

我有一种感觉,这应该很容易,但我正在努力找到如何做到这一点

我有一个网站,我想限制为HTTPS。它是部署到Azure的asp.net vnext网站(不是mvc)。它提供静态文件,而无需通过ASP.NET管道

在以前版本的asp.net中,可以添加system.webServer规则来执行重定向。这是从vNext中删除的。如果我使用的是Mvc,我可以使用RequireHttps属性,或者我可以编写自定义中间件来执行重定向,但这只在asp.net管道被激活时生效。我的html和js(这是一个SPA应用程序)仍然可以使用。如果我部署到IIS而不是Azure,我可以在那里配置它


那么,我如何告诉azure网站只在端口443上响应而不使用web配置文件呢?

根据azure文档,您可以为用azure支持的任何编程语言编写的应用程序添加web配置文件(Node.js、PHP、Python Django、Java)。你可以找到详细的信息

以下是一个示例:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <rewrite>
      <rules>
        <rule name="Force HTTPS" enabled="true">
         <match url="(.*)" ignoreCase="false" />
         <conditions>
          <add input="{HTTPS}" pattern="off" />
         </conditions>
         <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" appendQueryString="true" redirectType="Permanent" />
        </rule>
      </rules>
     </rewrite>
  </system.webServer>
</configuration>

您可以通过将
web.config
文件添加到部署中来实现重定向。文件说:

当托管在Azure应用程序服务上时-Azure会在部署期间自动创建文件,因此您永远不会看到它。如果在应用程序中包含一个,它将覆盖Azure自动生成的一个


为了获得额外的安全级别,您可能可以使用nsg。Azure文档将NSG称为“您可以使用Azure网络安全组来过滤Azure虚拟网络中与Azure资源之间的网络流量”。
您可以尝试使用cli创建nsg,并将规则放入其中以阻止到端口80的通信。

[Update]我已设法使用IIS Manager for Remote Administration连接到Azure网站,并且可以在SSL设置下启用Require SSL。但这并不是一个可接受的解决方法,因为每次部署时都会重置设置。它不起作用