C# 启用SSL时未获取NopCommerce存储内部页面

C# 启用SSL时未获取NopCommerce存储内部页面,c#,asp.net-mvc,asp.net-mvc-4,visual-studio-2012,ssl,C#,Asp.net Mvc,Asp.net Mvc 4,Visual Studio 2012,Ssl,我有一个Nop Commerce 3.0的项目。上周,我尝试在我的系统中启用SSL加密 网站。我已在我的存储表中启用SSL,然后设置 SecuritySettings.ForceSslForAllPages=false。然后在本地主机上测试我的应用程序 我的主页正常运行 但是当我在我的主页中点击登录链接时,我得到了这个错误 代码隐藏 [NopHttpsRequirement(SslRequirement.Yes)] public ActionResult Login(boo

我有一个Nop Commerce 3.0的项目。上周,我尝试在我的系统中启用SSL加密

网站。我已在我的存储表中启用SSL,然后设置

SecuritySettings.ForceSslForAllPages=false。然后在本地主机上测试我的应用程序

我的主页正常运行

但是当我在我的主页中点击登录链接时,我得到了这个错误

代码隐藏

 [NopHttpsRequirement(SslRequirement.Yes)]
        public ActionResult Login(bool? checkoutAsGuest)
        {
            var model = new LoginModel();
            model.UsernamesEnabled = _customerSettings.UsernamesEnabled;
            model.CheckoutAsGuest = checkoutAsGuest.HasValue ? checkoutAsGuest.Value : false;
            model.DisplayCaptcha = _captchaSettings.Enabled && _captchaSettings.ShowOnLoginPage;
            return View(model);
        }
在web.config中

 <authentication mode="Forms">
  <forms name="NOPCOMMERCE.AUTH" loginUrl="~/login" protection="All" timeout="43200" path="/" requireSSL="false" slidingExpiration="true" />
</authentication>

但此页面在http中可用。我不希望此页面带有https

请帮忙

编辑

我有理由说,因为我不知道如何解决这个问题。这个项目是我的

新任务。我不是这个项目的真正开发者。这个项目一直在进行中

现场网站没有任何问题。请参阅下面的屏幕截图。(url不可用。)

正确。)

实时网站主页

我单击了登录链接,它正确地重定向了登录页面。

我检查我的管理部分的SSL配置。但我想知道这是真的

我将我的实时数据库连接到本地主机源代码,我得到了上面的本地主机错误


我猜任何事情都取决于此SSL配置的Nop.Core项目。

如果启用了SSL,则所有带有
NopHttpsRequirement
注释的操作都将重定向到https。设置
SecuritySettings.ForceSslForAllPages
只是强制所有页面(即使没有注释的页面)都应重定向到SSL


问题是您试图在同一端口上运行http和https。他们需要在不同的端口上侦听(您在9999上请求了这两个端口)

我们使用反向工程工具,从网站上正确工作的Nop.Core dll生成源代码。我们发现有些类使用帮助函数在网站中构建URL。此函数用于在url中直接附加https字符串

以下是Nop.Core项目中的类和路径

  • ResolveLinksHelper.cs--Nop.Core/Html

  • WebHelper.cs--根目录

  • CommonHelper.cs--根目录

  • 我们将这些函数中的所有“https”字符串替换为“http”


    现在,应用程序在托管后可以完美运行。

    哦,不要这样做!只需在设置中禁用SSL。。。。此外,您还可以下载源代码。nopCommerce是开源的,谢谢您宝贵的重播。亲爱的先生,这是我们的错误,因为我们在上个月得到了源代码,所有的配置都和我们一样。在上一段代码中,上述类中没有http。我想在开发期间我们的源代码发生了意外的替换。在IIS中使用此代码的原因我在绑定部分中找到了单独的端口。我在IIS服务器绑定部分中找到了http和https的单独端口号。@RageshPuthiyedath,这是预期的。但当您使用:9999显式选择端口时,它将在这两个端口上尝试http和https。但是,如果不指定端口,它将选择默认端口。443用于https,80用于http