问题标签 [asp.net-core-2.1]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1809 浏览

c# - 邮递员生成有效令牌,来自 Newtonsoft JToken 的 C# Web 客户端令牌不起作用

我正在尝试从 OAuth 2.0 服务器获取令牌,然后使用Authorization标头传递给 REST API。它从服务器获取令牌,并在 API 调用时表示令牌无效。

使用从 Postman 生成的令牌,并通过该令牌从 postman 调用 rest API 工作正常。即使我尝试将 C# Client 生成的令牌粘贴到 Postman 中,Postman Rest API 通知令牌也是无效的。

我正在使用 .NET Core 2.1 并像这样生成令牌。

通过以下代码将 Token 传递给 REST API。

当我插入从 POSTMAN 生成的令牌时,REST API 返回正常。C# Web 客户端令牌生成存在一些问题。

邮递员(工作)的令牌:

eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6ImlCakwxUmNxemhpeTRmcHhJeGRacW9oTTJZayIsImtpZCI6ImlCakwxUmNxemhpeTRmcHhJeGRacW9oTTJZayJ9.eyJhdWQiOiJodHRwczovL3ZzaWZhc2hpb251cDgyNWM4Y2Y0OTQ3YzBkOTZmcmV0LmNsb3VkYXguZHluYW1pY3MuY29tLyIsImlzcyI6Imh0dHBzOi8vc3RzLndpbmRvd3MubmV0Lzc1NjY4ZjM2LTY1ZDMtNGQ5MC1hOTkwLTRiYjhlYzE2NzI4Zi8iLCJpYXQiOjE1MjU0MjUyMjUsIm5iZiI6MTUyNTQyNTIyNSwiZXhwIjoxNTI1NDI5MTI1LCJhaW8iOiJZMmRnWUZBNEUvTXRraStSZWZISHZZeHE1NktlQVFBPSIsImFwcGlkIjoiNDZmMTRlMTgtNDA5MS00ODRiLTk0NzYtNjM3ODc4NDE5MWQxIiwiYXBwaWRhY3IiOiIxIiwiaWRwIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzU2NjhmMzYtNjVkMy00ZDkwLWE5OTAtNGJiOGVjMTY3MjhmLyIsIm9pZCI6ImJjODVmMGYzLTc5NjgtNDk4Ni1hMDMzLTViZTBjZDFiN2Y1NiIsInN1YiI6ImJjODVmMGYzLTc5NjgtNDk4Ni1hMDMzLTViZTBjZDFiN2Y1NiIsInRpZCI6Ijc1NjY4ZjM2LTY1ZDMtNGQ5MC1hOTkwLTRiYjhlYzE2NzI4ZiIsInV0aSI6InVnVkljaVNNaEV5YUhoaWpERFFHQUEiLCJ2ZXIiOiIxLjAifQ.fWJiUaOmPuRD21EcuGnUBWCNYl0TaUZ7OxIFQXHYmMvnivHiys5j9UjL3ZBRSZAVzrjrBS-v-0xyyzT_502NEkM0H77vnaxXFB2lrZz1GRcXr5oFSW4gfDTvPinByLr5LBglxZG6_PCP4oqChKQgigxR7xBjok1XXQOD2_h-gYZbmnDNexjzkxZAl4kqTCfSfoRJxUZxX1pgD5PRAAkx1eanc1jiJ4KQA6kvnSDL0PyGGmmQe36RrMKH5bclH3sMLO3wilgvLMp3ekKDj51P2emW9dhDx2BrblowpCcLGe3Q6PikuZrYOkx44WqJKAS6QovJwijxCEq9XKAzDEZbig

来自 C# Web 客户端的令牌(不工作)

eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6ImlCakwxUmNxemhpeTRmcHhJeGRacW9oTTJZayIsImtpZCI6ImlCakwxUmNxemhpeTRmcHhJeGRacW9oTTJZayJ9.eyJhdWQiOiJodHRwczovL3ZzaWZhc2hpb251cDgyNWM4Y2Y0OTQ3YzBkOTZmcmV0LmNsb3VkYXguZHluYW1pY3MuY29tIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzU2NjhmMzYtNjVkMy00ZDkwLWE5OTAtNGJiOGVjMTY3MjhmLyIsImlhdCI6MTUyNTQyNTA2MiwibmJmIjoxNTI1NDI1MDYyLCJleHAiOjE1MjU0Mjg5NjIsImFpbyI6IlkyZGdZUGhvZjdKaHI5YU9xZjBxVmJyTTk0NitBZ0E9IiwiYXBwaWQiOiI0NmYxNGUxOC00MDkxLTQ4NGItOTQ3Ni02Mzc4Nzg0MTkxZDEiLCJhcHBpZGFjciI6IjEiLCJpZHAiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83NTY2OGYzNi02NWQzLTRkOTAtYTk5MC00YmI4ZWMxNjcyOGYvIiwib2lkIjoiYmM4NWYwZjMtNzk2OC00OTg2LWEwMzMtNWJlMGNkMWI3ZjU2Iiwic3ViIjoiYmM4NWYwZjMtNzk2OC00OTg2LWEwMzMtNWJlMGNkMWI3ZjU2IiwidGlkIjoiNzU2NjhmMzYtNjVkMy00ZDkwLWE5OTAtNGJiOGVjMTY3MjhmIiwidXRpIjoidWh1T3dmaE41RS1uOTZWSXVWc0VBQSIsInZlciI6IjEuMCJ9.Bulbv3HZyufQevjMPI-OU5_0NCrtFXPU9PIxXHriWLg_Mj_uUtoFHVslUtNH4FTwMEq2lTheE87N5jDkTra3Z-aTOQhsj3sz-6wqA4HrDGpbPyHaGscFfHkitpUyzV4_HfLaVA4vWAHbwKEIqs1gaVp-81m3oMka0OmDh1Jjgg-Lvcr-TMOkdP1qsgSdcRmqVWwmjYTp7HSPS997poC54md_Bdx7hFRwEA7WNmCdSCLZ44izgFHb3ou47r3agXprERYDBo6Vi6ofSp4zAsvYdsxoFrM6LiOwWSKbqilYotgDKjUQpA7u41iwy6fjgV1wBerOJUBWCWN8w3Vs4cmhXA

0 投票
2 回答
1288 浏览

asp.net-core - Asp.Net core 2.1 Scaffolding 使用 Bootstrap 4 了吗?

我仍在使用 Bootstrap 3 作为脚手架的 ASP.Net core 2.0 和 VS 15.6。对那些正在使用新的 ASP.Net core 2.1 和 VS 15.6 的人提出问题,新版本是否使用 Bootstrap 4 进行脚手架?

谢谢!

0 投票
1 回答
5571 浏览

docker - 在 Docker 中使用 ASP.NET Core 2.1 “找不到任何兼容的框架版本”

我正在尝试将在 Docker 中运行的 ASP.NET Core 2.0 应用程序更新为 .NET Core 2.1 RC1。

这是我的简化.csproj文件:

这是Dockerfile

我可以在 Docker 中构建图像,但运行它失败了

找不到任何兼容的框架版本找不到指定的框架“Microsoft.AspNetCore.All”,版本“2.1.0-rc1-final”。

有什么我想念的吗?还是我应该等待 Core 2.1 的最终发布?

0 投票
0 回答
1489 浏览

asp.net-core - 使用 Visual Studio 17 和“dotnet new reactredux”在使用 .NET Core 2.1 模板构建的应用程序中独立运行 Create-React-App 服务器

问题:

要独立运行 CRA 服务器,微软建议我们单独运行 CRA 应用并更改 Startup.cs 类文件中的代码,如下所示:

从控制台运行 React 应用程序:

> cd ClientApp

> npm 开始

将Startup.csspa.UseReactDevelopmentServer中的调用替换为:

spa.UseProxyToSpaDevelopmentServer(" http://localhost:3000/ ");

但是,当我按下 F5 时,Visual Studio 每次都会在http://localhost:54789启动一个 CRA 服务器

在此处输入图像描述

重现步骤:

  1. 安装 Microsoft Visual Studio Professional 2017
  2. 在 Visual Studio 安装期间选择.NET Core cross-platform development构建

在此处输入图像描述

  1. 从NPM 网站下载并安装 npm
  2. 打开 Windows 命令行工具
  3. 导航到新的工作区目录cd \path\to\workspace\
  4. npm install
  5. 确保您拥有最新的 .NET 模板: dotnet new --install Microsoft.DotNet.Web.Spa.ProjectTemplates::2.0.0
  6. 从模板创建一个新的 React-Redux 应用程序: dotnet new reactredux
  7. 导航到 ClientApp 目录: cd ClientApp
  8. 运行 CRA 服务器: npm start
  9. 在 Windows 资源管理器中打开您的工作区目录
  10. 打开创建的 .csproj 文件(应该在 Visual Studio 2017 中打开)
  11. 将Startup.csspa.UseReactDevelopmentServer中的调用替换为:

spa.UseProxyToSpaDevelopmentServer(" http://localhost:3000/ ");

  1. F5

环境

  • 微软视窗 7 企业版 SP1
  • Microsoft Visual Studio 专业版 2017 版本 15.6.7
  • 微软 .NET 框架 4.7.02558
  • Node.js 8.11.1
  • 节点包管理器 5.6.0
  • .NET 核心 SDK 2.1.104
  • 包参考:

    Microsoft.AspNetCore.All 2.0.0

    Microsoft.AspNetCore.SpaServices.Extensions 2.0.0-rc1-final

我只是误解了这个功能应该如何工作吗?

0 投票
1 回答
16579 浏览

c# - 从 Controller 调用 SignalR Core Hub 方法时的连接 ID

这是另一个问答的后续。调用HubContext.Clients.CallerHubContext.Clients.Others来自控制器的效果是什么?我看到这取决于连接 ID。在这种情况下它有什么价值?

如果连接 ID(因此Callerand Others)无效,那么(从控制器操作中)我如何获得可以与HubContext.Clients's 方法一起使用的连接 ID(对于当前调用 Web API 的客户端)?

0 投票
3 回答
10421 浏览

testing - 集成和单元测试不再适用于 ASP.NET Core 2.1 无法在运行时找到程序集

在创建测试项目或将应用程序和测试升级到 ASP.NET Core 2.1 / .NET Core 2.1 时,运行测试失败并出现程序集加载异常,例如

System.IO.FileNotFoundException:无法加载文件或程序集“Microsoft.AspNetCore,版本=2.1.0.0,文化=中性,PublicKeyToken=adb9793829ddae60”。该系统找不到指定的文件。

添加对其他一些库的引用时,还会出现构建警告,例如

警告 MSB3277:发现不同版本的“Microsoft.Extensions.Options”之间存在无法解决的冲突。
警告 MSB3277:发现不同版本的“Microsoft.Extensions.Configuration.Abstractions”之间存在无法解决的冲突。
警告 MSB3277:发现不同版本的“Microsoft.AspNetCore.Hosting.Abstractions”之间存在无法解决的冲突。
警告 MSB3277:发现不同版本的“Microsoft.Extensions.DependencyInjection.Abstractions”之间存在无法解决的冲突。
警告 MSB3277:发现不同版本的“Microsoft.AspNetCore.Http.Abstractions”之间存在无法解决的冲突。
警告 MSB3277:发现不同版本的“Microsoft.AspNetCore.Http.Features”之间存在无法解决的冲突。

如何使测试项目能够用于测试 ASP.NET Core 2.1 应用程序?

0 投票
1 回答
313 浏览

c# - 使用 Azure AD auth 获取承载访问令牌以访问 o365 资源

我正在使用沼泽标准,文件->新的 Asp.Net Core Web 应用程序(Razor Pages)项目,并将其配置为对 o365 实例使用 Azure AD 身份验证,效果很好。

我现在想使用该应用程序使用 Graph API 访问 o365 资源(例如我的日历)。在 asp.net core 2.0 中,我使用这里描述的方法来获取访问令牌,缓存它,并为任何图形请求检索它。它依赖于 OpenIdConnect 事件 (OnAuthorizationCodeReceived) 来获取访问代码。

我在使用 asp.net core 2.1 的新 AddAzureAd 方法上没有看到任何类似事件。现在是否有一种新方法可以获取用于 Graph 调用的令牌?

0 投票
2 回答
7763 浏览

c# - 由于 MinRequestBodyDataRate 和连接不良导致 BadHttpRequestException

我有一个 ASP.NET Core Web 应用程序,它接受来自经过身份验证的用户的文件上传,以及一些错误处理以在发生异常时通知我(Exceptional)。BadHttpRequestException我的问题是,由于用户在覆盖范围不可靠的区域通过移动设备访问应用程序,我会定期收到 s 警报。我以前也用 2.0 得到这个,但是直到异常描述在 2.1 中更新,我才知道它与 . 有特殊关系MinRequestBodyDataRate,或者它是可配置的。我已经使用以下内容增加了默认值(5 秒内 240 个字节)

这将等待客户端/浏览器的持续时间加倍,但我仍然收到错误警报。我无法控制用户的不良接收,但我仍然希望尝试找到一种方法来减轻错误。我可以进一步扩展最小值,但如果可能的话,我不想为整个应用程序这样做。理想情况下,它是处理上传的特定路线/动作。我能够找到的文档表明这个最小值可以使用IHttpMinRequestBodyDataRateFeature. 我想过把它放在动作中,但我认为在模型绑定上传整个文件以便将其绑定到我的参数之前,甚至不会调用动作。

由于我之前实现了分块上传,并且仅在最后一个块出现时才将文件保存到服务/数据库(在两者之间的临时位置逐渐构建文件),这在一定程度上有所缓解。BadHttpRequestException但是,即使通过CreateWebHostBuilder(未显示分块,因为它不相关)完成了延长的持续时间,我仍然可以获得这些s。

我认为最好的选择可能是尝试将其连接到设置中间件的配置方法中,但我不确定仅将其应用于一个操作的最佳方法。网址可能吗?而且我想知道如果我通过将最低速率设置为完全禁用最低速率会有什么影响null

我基本上只是想让连接更能容忍低质量的连接,同时又不会在日常的其他方面对应用程序的其他方面造成太多干扰。

  1. 我需要一种方法来应用更改(可能在中间件中Startup.Configure()),使其仅适用于受影响的路由/url/action。
  2. 如果我为该路由/url/动作完全禁用它(而不是扩大它),是否有需要考虑的影响?整个应用程序?
  3. 如果失败了,那么简单地忽略这些错误并且从不记录它们是否安全?我是否会为与应用程序/服务器的恶意交互创建盲点?
0 投票
6 回答
14224 浏览

.net-core - 在 ASP.NET Core MVC 2.1 中有什么东西取代了 bundleconfig.json 吗?

当我创建一个针对 2.1 RC1 的新 ASP.NET MVC Core 时,它​​不会创建用于捆绑和缩小的 bundleconfig.json 文件。如果我以 2.0 为目标,则会创建此文件。

这是一个示例,该解决方案包含一个针对 2.0 的新项目和另一个针对 2.1 的项目: 在此处输入图像描述

有什么东西取代了内置的捆绑和缩小,还是这只是 RC1 中的一个错误?

0 投票
1 回答
497 浏览

asp.net-core-mvc - 在 ASP.NET Core 中,是否可以通过将身份验证转发到另一个方案来在一个方案中抢先创建新用户?

由于我们应用程序的性质,我们可以让用户通过大量的身份验证提供程序进入,其中一些使用 OAuth 1.0(特别是LTI)。与其总是在我们无法识别登录时创建一个新用户帐户,然后不得不在以后处理复杂的身份合并,我们希望邀请显然是用户通过 OpenID(主要是谷歌和微软,因为这涵盖了我们的大部分用户。)我们可以要求他们提供他们的 U/P,但我们不做 U/P - 我们一直倾向于只支持通过 3rd 方身份提供者登录,并且真的不想改变它。

因此,场景将是我们的自定义身份验证方案 (LTI/OAuth1.0) 接收第 3 方声明,确定这些声明对我们的系统来说是新的,然后将质询转发给我们的默认身份验证方案。完成该方案后(成功验证或用户拒绝(即 NoResult)),理想情况下,我们将返回原始方案以完成使用提供的声明创建新用户或向现有用户添加额外登录。一旦所有这些都完成,最终的 AuthenticationTicket 将被返回,并且请求将正常进行,如已通过身份验证。

我可能认为这一切都是错误的,如果是这样,我很乐意被引导到更好的方向。但基本的业务要求是,我不想在让新来的个人有机会通过另一种登录方法将自己标识为现有用户之前创建新用户。

目标环境是 ASP.NET Core 2.0 或 2.1。