Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.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
C# 自签名证书的HTTPS错误_C#_Asp.net_Iis 6 - Fatal编程技术网

C# 自签名证书的HTTPS错误

C# 自签名证书的HTTPS错误,c#,asp.net,iis-6,C#,Asp.net,Iis 6,这是在VS2005中。IIS是6.0。我正在尝试对HTTPS使用自签名证书。在代码中,我将从http重定向到https,只需几页。它不好用。 在IIS管理器中,对于每个需要HTTPs的页面,我都通过检查Require Secure ChannelSSL和Require 128位加密来更改其设置 public void setSecureProtocol() { string redirectUrl = null; bool bSecure = true;

这是在VS2005中。IIS是6.0。我正在尝试对HTTPS使用自签名证书。在代码中,我将从http重定向到https,只需几页。它不好用。 在IIS管理器中,对于每个需要HTTPs的页面,我都通过检查Require Secure ChannelSSL和Require 128位加密来更改其设置

public void setSecureProtocol()
    {
        string redirectUrl = null;
        bool bSecure = true;
        bool SecureConnection = true;
        if (bSecure && SecureConnection)
            redirectUrl = Request.Url.ToString().Replace("http:", "https:");
        else
            if (!bSecure && SecureConnection)
                redirectUrl = Request.Url.ToString().Replace("https:", "http:");

        if (redirectUrl != null)
            Response.Redirect(redirectUrl);
   }
页面给了我这样一个错误

必须在安全的网络上查看该页面 引导您尝试访问的页面 使用安全插座确保访问安全 层SSL

请尝试以下操作:

* Type https:// at the beginning of the address you are attempting to reach and press ENTER.
HTTP错误403.4-禁止:SSL为 查看此资源所必需的。 Internet信息服务II Internet信息服务IIS

当我尝试将https放在URl的开头时,它不会调用。我不知道这里出了什么问题。请帮帮我

这里,

它不会从http重定向到https

对于我在代码隐藏中没有重定向的页面,以及在IIS中更改的页面,我可以在选中这两个复选框时看到HTTPS

请有人帮帮我!!!!提前多谢


互联网信息服务IIS

@Ram我想我找到了问题所在

我已通过检查Require Secure ChannelSSL和Require 128位加密来更改其设置

您已经限制了此页面的http,因此当您将其称为http时,根本不会加载该页面以使代码运行并将其重定向到https

因此,删除该页面的http限制,让它运行并允许切换,您只需注意始终使用https即可

这是一个非常重要的问题


另一种方法是更改指向您希望安全的页面的所有链接,并使用https发送,而不是等待进入该页面以从代码隐藏中更改它们。

是否进行调试以查看是否确实将http更改为https?可能是流逻辑中的错误阻止了替换。是的,我调试并查看了。它显示其重定向到HTTPS。但是在那之后发生了一些事情。我这里的第一个问题是:如果我应该让代码重定向到https。或者证书是为自己做的?可能还有第二个重定向到http?以上代码至少有一个错误-if-bSecure&&SecureConnection必须是->if-if-bSecure&!SecureConnection@Aristos我已经清除了那部分。即使在更改之后,我也没有发现任何积极的东西:@Aristos:所以你的意思是,我应该取消选中Required Secure ChannelSSL,并在任何地方都需要128位加密,然后看到了吗?这个链接超出了我的理解水平,因为我是新手第二条路你能详细告诉我吗?我真的很感谢你的帮助。谢谢大家!@Ram是的,我的意思是从IIS中删除所有必需的安全通道SSL,并在代码中处理。第二种方法:当您有一个带有指向安全页面链接的页面时,请键入完整路径,例如:https://www.mypages.com/login.aspx-您需要在所有指向安全页面的链接上执行此操作。@Aristos我已取消选中所有内容。重定向工作正常。当我转到页面时,它显示https,但我仍然有相同的错误。在我取消选中后,它会自动重定向到https,但为什么这会困扰我?只是提醒你,我正在使用自签名证书!还有其他帮助吗?@Ram现在有什么错误?如果这只是一个警告,那么你点击锁图标,导入并确保安全,你的自我签名ssl。@Aristos你真是太棒了!我非常感谢你的帮助。你说的方式对我很管用。我的代码有一个错误,让我等待。但你完全正确。谢谢你!再次感谢你