如何使用 Identity 在 ASP.NET Core 项目中禁用 HTTPS?

2024-01-23

我最近在 Visual Studio 2019 中创建了一个 ASP.NET Core 3.0 Web 应用程序项目(启用了 Docker,但我认为这不相关),并且在包含 ASP.NET Identity 时似乎无法禁用 HTTPS个人用户帐户。每当我在调试器中启动应用程序时,页面都会使用 HTTPS 打开,并且导航到 HTTP 会再次将我重定向回来。

我尝试创建一个新项目来测试发生了什么,并发现了以下内容:

创建项目时,我启用了 ASP.NET Identity 以便在我的应用程序中使用本地帐户,并且我注意到,如果我再次通过向导来创建具有相同设置的项目(启用了 Identity 的 Web 应用程序)对于个人用户帐户)取消选中启用 HTTPS 框的选项似乎呈灰色。

创建项目后,我尝试禁用 HTTPS 重定向中间件Startup.cs通过注释掉相关行:

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
                app.UseDatabaseErrorPage();
            }
            else
            {
                app.UseExceptionHandler("/Home/Error");
                app.UseHsts();
            }
            //app.UseHttpsRedirection();
            app.UseStaticFiles();

            app.UseRouting();

            app.UseAuthentication();
            app.UseAuthorization();

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllerRoute(
                    name: "default",
                    pattern: "{controller=Home}/{action=Index}/{id?}");
                endpoints.MapRazorPages();
            });
        }

并已编辑了launchSettings.json尝试让应用程序在调试时使用 HTTP 而不是 HTTPS 运行,但应用程序仍尝试使用 HTTPS 加载。

launchSettings.json BEFORE:

{
  "iisSettings": {
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iisExpress": {
      "applicationUrl": "http://localhost:51767",
      "sslPort": 44396
    }
  },
  "profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    },
    "HTTPSTest": {
      "commandName": "Project",
      "launchBrowser": true,
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      },
      "applicationUrl": "https://localhost:5001;http://localhost:5000"
    },
    "Docker": {
      "commandName": "Docker",
      "launchBrowser": true,
      "launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}",
      "environmentVariables": {
        "ASPNETCORE_URLS": "https://+:443;http://+:80",
        "ASPNETCORE_HTTPS_PORT": "44397"
      },
      "httpPort": 51777,
      "useSSL": true,
      "sslPort": 44397
    }
  }
}

launchSettings.json AFTER:

{
  "iisSettings": {
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iisExpress": {
      "applicationUrl": "http://localhost:51767"
    }
  },
  "profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    },
    "HTTPSTest": {
      "commandName": "Project",
      "launchBrowser": true,
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      },
      "applicationUrl": "http://localhost:5000"
    },
    "Docker": {
      "commandName": "Docker",
      "launchBrowser": true,
      "launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}",
      "environmentVariables": {
      },
      "httpPort": 51777
    }
  }
}

有人知道我接下来可以尝试什么吗?我希望该应用程序位于 SSL 终止反向代理后面,因此我认为禁用此功能并不是不合理的。


所以我实际上设法解决了这个问题。我在 Visual Studio 使用 HTTPS 打开应用程序时遇到的问题是 Visual Studio 的问题。

通过注释掉在另一台计算机上运行相同的设置效果很好app.UseHttpsRedirection()线路输入Startup.cs并删除 SSL 引用launchSettings.json正如我原来的帖子中一样 - 运行调试器使用 HTTP 打开页面并能够连接到应用程序。

为了让一切再次正常工作,我尝试完全删除 Visual Studio,重新启动,重新安装并重试,但仍然遇到同样的问题。最后我还必须删除下面的所有 Visual Studio 文件夹AppData在我的用户目录中,然后重新安装 Visual Studio,然后当我尝试调试我的项目时它终于再次工作了!

UPDATE:
这实际上在周末之后又回来了,我发现这次我的问题是 HSTS 在 Chrome 中缓存了 HTTPS 的使用。可以在此处找到如何针对不同浏览器删除此内容的示例:https://appuals.com/how-to-clear-or-disable-hsts-for-chrome-firefox-and-internet-explorer/ https://appuals.com/how-to-clear-or-disable-hsts-for-chrome-firefox-and-internet-explorer/

总而言之,对于 Chrome:
1. 导航至chrome://net-internals/#hsts http://chrome://net-internals/#hsts
2. 在Delete domain security policies部分,输入localhost作为域名并点击Delete button

更新 2 - 警告虽然这个“修复”允许我使用 HTTP 运行我的项目,但我确实发现 Identity 不允许我登录,除非启用了 HTTPS - 我认为这与 SignInManager 设置仅 HTTPS 身份验证 cookie 有关 - 请参阅此处欲了解更多详情:AspNet Core Identity - cookie 未在生产中设置 https://stackoverflow.com/questions/46059955/aspnet-core-identity-cookie-not-getting-set-in-production?rq=1

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Identity 在 ASP.NET Core 项目中禁用 HTTPS? 的相关文章

  • 如何直接在 Razor 中从 ASP.NET Identity 获取 UserId() 方法

    我的某些部分的自定义授权存在此问题Views 我不想穿上PartialView 而不是我使用If声明如下 if item CurrentComment Id Guid Parse ViewBag UserId repository IsUs
  • 发布到IIS,设置环境变量

    阅读这两个问题 答案 我能够在 IIS 8 5 服务器上运行 Asp net 5 应用程序 Asp net vNext 早期测试版发布到 Windows 服务器中的 IIS https stackoverflow com questions
  • 如何构造控制器来对多个条件进行排序 asp.net mvc

    设置控制器按许多 可能为空 标准排序的最佳方法是什么 举例来说 我正在建立一个销售汽车的网站 我的 CarController 有一个函数 Index 它将汽车的 IList 返回到视图 并且每辆车的详细信息都用部分视图呈现 构建这个结构的
  • ASP.NET MVC 防伪造令牌不安全

    在没有 ssl 的情况下向服务器发出请求时 我实际上可以看到 MVC3 框架以纯文本形式生成的验证令牌密钥 该密钥存储在名为 RequestVerificationToken Lw 的 cookie 中 在混合安全环境中 实际上可以在向非
  • 将日期参数传递给对 MVC 操作的 ajax 调用的安全方法

    我有一个 MVC 操作 它的参数之一是DateTime如果我通过 17 07 2012 它会抛出一个异常 指出参数为空但不能有空值 但如果我通过01 07 2012它被解析为Jan 07 2012 我将日期传递给 ajax 调用DD MM
  • MVC中无法从ViewBag中提取数据

    我试图在提交之前从 ViewBag 中提取数据并通过 JS 将其插入表单隐藏字段中 这不起作用 在调试时 我发现 JS 表达式的一部分被忽略了 因此 var 被评估为空字符串 这是 JS 部分 它应该执行分配 function setid
  • 选中哪个复选框(控制器)并列出结果

    我是 ASP NET MVC 新手 我正在制作一个在线视频商店应用程序 我有这样的看法 用户可以在其中选择要租借的视频 视图的代码 model IEnumerable
  • ASP.NET MVC 路由如何工作?

    我定义了以下路线 public static void RegisterRoutes RouteCollection routes routes IgnoreRoute resource axd pathInfo routes MapRou
  • 在 ASP.NET MVC 中设置默认 JSON 序列化器

    我正在开发一个已部分转换为 MVC 的现有应用程序 每当控制器响应 JSON ActionResult 时 枚举都会以数字形式发送 而不是字符串名称 听起来默认的序列化程序应该是 JSON Net 它应该将枚举作为其名称而不是整数表示形式发
  • 如何在 Asp.NET MVC 中使用 RedirectToAction() 传递多个对象?

    我想使用redirectToAction 方法传递多个对象 下面是我重定向到的操作结果 public ActionResult GetEmployees Models Department department Models Categor
  • 编译器失败,错误代码-1073741819

    我们遇到以下错误 而且每次都需要重启服务器 The compiler failed with error code 1073741819 此外 ASP Net 工作正常 只有 ASP Net MVC 应用程序无法工作 任何想法 我的错误代码
  • 您如何填充/验证您的 ViewModel?

    我很好奇人们构建 ViewModel 的各种方式以及他们为什么选择该方法 我在这里可以想到几种方法 1 注入存储库 控制器加载模型并映射到 ViewModel 这里 ViewModel 构造函数可以采用各种集合来进行内部设置 在选择列表中
  • 如何在 EditorTemplate 中获取完全限定的成员名称?

    我有一个 ASP NET MVC 4 站点 我将嵌套属性传递给 EditorTemplate 并使用构建字段名称ViewData ModelMetadata PropertyName但是 这获取子属性的属性名称 而不是我正在编辑的属性的完整
  • 如何使用 Django 了解服务器是否安全(使用 https)

    我正在开发一个基于 Django 的应用程序 我想知道是否有办法知道我的服务器使用的是 http 连接还是 https 我知道使用 import socket if socket gethostname startswith 我可以获取主机
  • 在 ASP.Net MVC 中的同一视图中分离两个表单

    我已将创建帐户视图和登录视图合并到同一视图中 所以这是一个具有两种表单的视图 但是当我提交时它们会混合在一起 如果我尝试登录并显示错误 Html ValidationSummary 两种形式都会出现错误 我开始将字段重命名为 loginPa
  • Web 服务器是否可以向自身发出 HTTPS 请求?

    假设您有两个应用程序 A 和 B 在同一 Web 服务器上运行 您希望应用程序 A 通过 SSL 调用应用程序 B 上的 webService 是否可以使用类似的地址来做到这一点https localhost appsB webServic
  • 实体框架 - 实体类型之间的关联已被切断问题

    您好 当我尝试删除 绑定 表中的一行时 我遇到了实体框架问题 这些表看起来像这样 Table Users public class UserEntity BaseEntity Required MaxLength 30 public str
  • Portable 和 win-x64 在部署时有什么区别?

    我将代码部署到 Windows Server 2016 上的 IIS 我试图了解选择之间的有效区别Portable vs win x64在发布 设置 目标运行时下拉列表中 由于 JIT 需要将代码编译到特定的体系结构 站点在 Portabl
  • 如何在Azure功能中添加razor视图文件?

    我正在创建一个应用程序 它是 azure 函数项目 我想在该项目中使用 Razor 视图 我应该在 azure 函数中使用任何模板引擎吗 得益于一些方面的进步剃刀之光项目 https github com toddams RazorLigh
  • bootstrap css中垂直对齐缩略图?

    我认为这应该很简单 但我就是无法让它发挥作用 在 ASP NET MVC 中 我有一个如下所示的项目列表 div class row div class span12 ul class thumbnails foreach var film

随机推荐

  • MPMoviePlayerController - 加载电影时捕获网络错误

    有没有办法捕获异常 特别是网络错误 没有可用的连接 当使用 MPMoviePlayerController 时 我特别担心一旦播放器的实例被初始化initWithURL 您无法知道电影加载是否由于某种原因失败 我已经查看了可用的文档并意识到
  • SwiftUI LazyHGrid 动态行之间的空间

    您能否建议如何在网格中拥有动态的行数 我有 5 个单词 这些单词的宽度可能不同 这个想法是让它们彼此相邻显示 如果没有足够的空间 gt 移动到下一行 我目前正在使用这个 var rows GridItem init adaptive min
  • 为什么 JavaScript 的 getElementsByClassName 提供一个不是数组的对象?

    我正在尝试使用 JavaScript 不使用 jQuery 获取页面上具有特定类名的所有元素的列表 因此 我使用 getElementsByClassName 函数 如下所示 var expand buttons document getE
  • 使用 clang API 打印参数的类型 (ParmVarDecl)

    我需要使用 clang API 打印 C 源文件中参数的类型 如果我有 clang 中的参数表示 ParmVarDecl param 我可以使用打印参数的名称param gt getNameAsString 我需要一个方法param gt
  • 如何向 boto (Amazon S3) 中的密钥添加标签?

    我正在尝试标记已上传到 S3 的密钥 在下面的内容中 我只是从字符串创建一个文件 一旦我有了密钥 我不知道如何标记文件 我尝试过 Tag 和 TagSet from boto s3 bucket import Bucket from bot
  • PHP 将所有对象属性复制到此

    我有一个 PHP 类型的对象MyObject myObject instanceof MyObject 现在 在class MyObject 有一个非静态函数 在那里 我使用对 我 的引用 例如 this 但我那里还有另一个对象 是否有可能
  • 使用 mod_rewrite 进行语言重定向

    我有一个提供 7 种语言版本的网站 我希望仅当用户访问主页时才能根据浏览器语言重定向用户 这是为了增加有机流量的可用性 我需要此重定向仅适用于主页 因为该网站还会发送特定于每种语言的邮件 如果用户被重定向 它们将不起作用 此外 每种语言都是
  • 如何让长按电源键拒绝关机?

    在大多数较新的计算机上 您可以通过按住电源按钮几秒钟来硬关闭 但我想完全阻止这种情况发生 您可以阻止一些软事件 例如 Windows 控制面板中的睡眠 挂起 休眠和 按电源按钮 事件 您还可以使用一些 Win32 和 WDI 编程来捕获和处
  • __init__() 得到意外的关键字参数 'y'

    我正在阅读 绝对初学者的 Python 编程 一书 并决定通过制作自己的游戏来测试我的一些技能 这个游戏基本上是 不要被飞行的尖刺击中 我遇到了一个问题 使用此代码运行时 class Player games Sprite The play
  • Manifest 文件的用途是什么

    https docs oracle com javase tutorial deployment jar manifestindex html https docs oracle com javase tutorial deployment
  • 枚举所有打开的连接

    是否可以使用 NET枚举当前进程的所有打开的连接 与 netstat 工具执行此操作的方式类似 您可以使用IPGlobalProperties http msdn microsoft com en us library system net
  • 验证 React Native 中的 Style 属性类型

    我有一个组件 它的属性包含子组件的西林 我想确保propTypes正确验证它的类型 我可以从 React Native 代码中得知它有一个ViewStylePropTypes https github com facebook react
  • 如何将 DLL 链接到我的项目?错误 LNK2019:无法解析的外部符号

    我有一个文件foo h有各种函数声明 所有这些功能都在一个文件中实现foo dll 但是 当我包含 h 文件并尝试使用任何函数时 我收到错误 bar obj error LNK2019 unresolved external symbol
  • 替换单词和字符串 pandas

    dataframe pd DataFrame Date This 1A1619 person BL171111 the A 1 24 dont Z112 but NOT 1 22 2001 mix 1A25629Q88 or A13B ok
  • 通过 tqdm.write() 重定向 python 脚本中的打印命令

    我在用着tqdm在 Python 中显示脚本中的控制台进度条 但是 我必须调用函数print消息也发送到控制台 我无法更改 一般来说 在控制台中显示进度条时写入控制台会弄乱显示 如下所示 from time import sleep fro
  • 将 tqdm 与并发.futures 一起使用吗?

    我有一个多线程函数 我想要一个状态栏来使用tqdm 有没有一种简单的方法来显示状态栏ThreadPoolExecutor 让我困惑的是并行化部分 import concurrent futures def f x return f 2 my
  • 检查引荐来源网址

    我用它来检查某人是否来自 Reddit 但它不起作用 var ref document referrer if ref match http www reddit com gi alert You came from Reddit else
  • JavaScript 类型的最大大小?

    通过研究 javascript 类型 我试图找出某些数据类型的最大存储大小是多少 例如 我设置了一个快速递归算法来增加 var 大小 直到浏览器崩溃 最终在我现有的 chrome 版本上 字符串接近 128mb 或者可能是 256 我一直在
  • DynamoDb 如何查询全局二级索引?

    我创建了一个如下表 其中全局二级索引为 Em 代表电子邮件 TableName Users KeySchema AttributeName Ai KeyType HASH Partition key AttributeName Ui Key
  • 如何使用 Identity 在 ASP.NET Core 项目中禁用 HTTPS?

    我最近在 Visual Studio 2019 中创建了一个 ASP NET Core 3 0 Web 应用程序项目 启用了 Docker 但我认为这不相关 并且在包含 ASP NET Identity 时似乎无法禁用 HTTPS个人用户帐