小编she*_*ira的帖子

如何替换 .NET Core 3.0 中的 AddJwtBearer 扩展

我有以下代码可以在 .NET Core 2.2 中编译和运行:

  byte[] key = Encoding.ASCII.GetBytes(Constants.JWT_SECRET); 
        services.AddAuthentication(x =>
        {
            x.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
            x.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
        })
        .AddJwtBearer(x =>
        {
            x.RequireHttpsMetadata = false;
            x.SaveToken = true;
            x.TokenValidationParameters = new TokenValidationParameters
            {
                ValidateIssuerSigningKey = true,
                IssuerSigningKey = new SymmetricSecurityKey(key),
                ValidateIssuer = false,
                ValidateAudience = false
            };
        });
Run Code Online (Sandbox Code Playgroud)

在 .NET Core 3.0 中,我收到错误消息:

错误 CS1061“AuthenticationBuilder”不包含“AddJwtBearer”的定义,并且找不到接受“AuthenticationBuilder”类型的第一个参数的可访问扩展方法“AddJwtBearer”(您是否缺少 using 指令或程序集引用?)

当我查看 MSFT 文档时: https://docs.microsoft.com/en-us/dotnet/api/microsoft.extensions.dependencyinjection.jwtbearerextensions.addjwtbearer?view=aspnetcore-2.2

并尝试升级到 3.0 版,这似乎是定义 this 的最后一个版本。如何将 AddJwtBearer 迁移到 Core 3.0?

c# .net-core asp.net-core asp.net-core-2.0 .net-core-3.0

31
推荐指数
2
解决办法
2万
查看次数

如何在 .NET Core 3.0 Entity Framework 中执行组加入?

随着 .NET Core 3.0 的变化,我得到了

... NavigationExpandingExpressionVisitor' 失败。这可能表示 EF Core 中存在错误或限制。有关更多详细信息,请参阅 https://go.microsoft.com/fwlink/?linkid=2101433。)---> System.InvalidOperationException:处理 LINQ 表达式“GroupJoin,...

这是一个非常简单的查询,因此必须有一种方法可以在 .NET CORE 3.0 中执行它:

 var queryResults1 = await patients
            .GroupJoin(
                _context.Studies,
                p => p.Id,
                s => s.Patient.Id,
                (p, studies) => new 
                {
                    p.DateOfBirth,
                    p.Id,
                    p.Name,
                    p.Sex,
                   Studies =studies.Select(s1=>s1)
                }
            )
            .AsNoTracking().ToListAsync();
Run Code Online (Sandbox Code Playgroud)

我基本上是在寻找一个 Linq 查询(或上面的方法语法),它将研究加入患者,并将研究设置为空列表或空列表,如果给定患者没有研究。

有任何想法吗?这在 .NET Core 2.2 中有效。此外,上面的 MSFT 链接提到关键突破性更改与客户端评估有关,并避免生成的查询读取整个表,然后必须加入或过滤客户端。然而,通过这个简单的查询,连接应该很容易在服务器端进行。

c# linq entity-framework .net-core .net-core-3.0

22
推荐指数
1
解决办法
2万
查看次数

.NET Core 3.0 迁移错误 IAsyncEnumerable<T> 存在于 System.Interactive.Async 和 System.Runtime

我正在尝试将项目从 .net core 2.2 迁移到 3.0。

我收到错误:

错误 CS0433 类型 'IAsyncEnumerable< T >' 存在于 'System.Interactive.Async, Version=3.2.0.0, Culture=neutral, PublicKeyToken=94bc3704cddfc263' 和 'System.Runtime, Version=4.2.1.0

我在这里尝试了一个建议:https : //github.com/aspnet/EntityFrameworkCore/issues/15047,它建议强制更新到 System.Interactive.Async 4.0.0。(我将此引用添加到我的项目中)。

但是我有另一个错误:引用类型“IAsyncEnumerable<>”声称它在“System.Interactive.Async”中定义,但找不到

我正在使用 IAsyncQueryProvider,它似乎导致了问题。

我在 2.2 中没有这些问题,目前我找不到任何解决方法。

我还尝试强行更新到 System.Runtime 4.3.1,但没有帮助。

c# .net-core .net-core-3.0

11
推荐指数
2
解决办法
4894
查看次数

VS 2015构建错误:PE映像不包含元数据

在使用VS 2015构建ac#类库(.NET 4.0)时,我收到错误:PE映像不包含元数据.

我尝试了一些显而易见的东西:1.执行干净的整个解决方案2.重新启动Visual Studio并重建所有内容

奇怪的是,即使DLL构建和工作,这个恼人的错误仍然停留在构建输出的错误窗口中.

完整错误读取:读取c时出错:/XX/xxx/DEBUG/mylib.dll:PE映像不包含元数据.

有任何想法吗?

编辑:重新启动计算机后,错误消失了.这不是一个真正的解决方案,所以我没有回答我自己的问题,但至少它解决了一个恼人的错误.

c# visual-studio

7
推荐指数
0
解决办法
2018
查看次数

.NET CORE ALINK:警告 AL1073:引用的程序集“mscorlib.dll”针对不同的处理器

我正在使用 VS2019 和 .NET CORE 2.2 我收到警告 AL1073

ALINK 警告 AL1073:引用的程序集“mscorlib.dll”针对不同的处理器

我知道这与问题很接近:ALINK:警告 AL1073:引用的程序集“mscorlib.dll”针对不同的处理器

但:

  1. 我在 .NET CORE 2.2 而不是 4.x

  2. 那里提出的解决方案不适用于 .NET 核心

特别是,试图添加:

<PropertyGroup> 
<TargetFrameworkSDKToolsDirectory Condition=" '$(PlatformTarget)' == 'x64'">$(TargetFrameworkSDKToolsDirectory)\$(PlatformTarget)\
</TargetFrameworkSDKToolsDirectory>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

发出另一个警告

警告 MSB3084 任务试图在两个位置找到“al.exe”。1) 在基于 SdkToolsPath 生成的 "\x64\" 处理器特定目录下 2) 在 SDKToolsPath 属性指定的 "\x64\" 下 x86 特定目录。您可以通过执行以下操作之一来解决该问题:1) 将“SDKToolsPath”属性设置为 Microsoft Windows SDK 的位置。C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\Microsoft.Common.CurrentVersion.targets

真的很奇怪,因为根据警告,位置是一样的!

另外:我很乐意在构建设置中取消警告,因为我所有的单元测试都通过了,但是将 1073 添加到列表中对仍然出现的 AL1073 警告没有影响。

或者,警告提示:将“SDKToolsPath”属性设置为 Microsoft Windows SDK 的位置,我该怎么做?

更新回答评论:这很难在简单的设置中重现。该项目特别引用了几个 Github 项目(fo-dicom)。fo-dicom 库使用为 32 和 64 平台构建的图像库。我确实尝试设置为 64 …

.net c# msbuild fo-dicom visual-studio-2019

6
推荐指数
2
解决办法
1578
查看次数

.net core,如何处理带有额外前导斜杠的路由

我需要处理以下形式的传入请求: //ohif/study/1.1/series 请注意前面的额外斜杠

我的控制器签名是:

[Route("ohif/study/{studyUid}/series")]
[HttpGet]
public IActionResult GetStudy(string studyUid)
Run Code Online (Sandbox Code Playgroud)

如果我将传入请求修改为 /ohif/study/1.1/series 它工作正常

但是,当我使用 //ohif/study/1.1/series 时,路线未被命中

另外我还尝试了: [Route("/ohif/study/{studyUid}/series")] 和 [Route("//ohif/study/{studyUid}/series")]

两者都失败了。不幸的是,我无法更改传入的请求,因为它来自外部应用程序。有什么技巧可以处理这条路线吗?我正在使用 .NET Core 3.0。

更新注意: 我已激活日志记录,并且看到 asp.net core 正在分析路由,我收到消息:没有找到记录器 Microsoft.AspNetCore 的请求路径“//ohif/study/1.1/series”的候选者。路由.EndpointRoutingMiddleware

asp.net model-view-controller asp.net-core-mvc asp.net-core-2.0

5
推荐指数
2
解决办法
5153
查看次数

将本地存储还原到本地文件

有没有办法在jquery或JavaScript中轻松保存和恢复本地存储到文件?

有三种情况:

  1. 使用特定的本地存储进行测试

  2. 在此数据至关重要的某些特定情况下备份本地存储(我们希望保存,以防删除本地缓存)

  3. 从现有本地存储设置另一个浏览器.

javascript jquery html5

4
推荐指数
3
解决办法
4768
查看次数

MySQL 插入行只有默认值

我想插入一个只有默认值的行(我稍后会更新,因为我需要 ID 自动递增字段)

这适用于 SQL Server(如何插入仅具有默认值的记录?

insert into myTable DEFAULT  VALUES;
Run Code Online (Sandbox Code Playgroud)

但是我怎样才能在 MySQL 中实现这一点:

我也试过:

insert into myTable;
Run Code Online (Sandbox Code Playgroud)

这失败了。我知道我可以使用标准的插入语法来解决,但是我的表中有很多列,所以如果存在简单的语法会很有帮助。

mysql sql

4
推荐指数
1
解决办法
3332
查看次数

获取元素的连续比率python

有没有一种简单的方法来获取 numpy 数组的连续元素的比率?

基本上类似于 numpy.diff(x) 的东西?

所以如果 x=[1,2,10,100 ...]

我想要 [0.5 ,0.2, 0.1 ...] 即 [x1/x2, x2/x3 , x3/x4]

我知道我可以通过移动和除法轻松做到这一点,但与 numpy.diff(x) 相比似乎很笨拙

python numpy

4
推荐指数
2
解决办法
2770
查看次数

NLog:如何以编程方式获取特定目标的级别

我目前使用 NLog 并允许管理员用户使用变量在运行时设置级别,如下所示:

<logger name="*" minLevel="${var:myFileLevel}" writeTo="file" />
Run Code Online (Sandbox Code Playgroud)

我想知道这个记录器在运行时的级别(所以由于变量我无法从配置文件中获取它)

我可以轻松获得目标,如下所示:

Target target= LogManager.Configuration.FindTargetByName("file");
Run Code Online (Sandbox Code Playgroud)

但不幸的是,目标对象上没有相关方法来获取级别。是否可以在运行时获取日志级别?

c# nlog

4
推荐指数
1
解决办法
400
查看次数

Oracle:在更新具有多列的表的一个字段时复制行

有没有办法一般复制一行,特别是不指定所有列。

在我的情况下,我有一个大表,我想在其中复制除 ID 和其他一列之外的所有列。事实上,数据是在年初逐年复制的。该表有 50 多列,因此如果我不必指定所有列,那么更改架构会更加灵活和健壮。

这与问题密切相关:在更新一个字段时复制行

在那个问题中,Kevin Cline 的评论基本上是在问我的问题,但实际上没有为这种更一般的情况提供解决方案。

编辑以根据要求提供更多详细信息,以下是所需内容的示例:

-- setup test table
create table my_table(pk, v1,v2,v3,v4 ... v50) as
  select 17 pk, 1 v1,2 v2,3 v3... 50 v50 from dual;
Run Code Online (Sandbox Code Playgroud)

在上表中复制行并将 pk 设置为 18,将 v2 设置为 10。

sql oracle plsql

3
推荐指数
1
解决办法
1708
查看次数

完全连接 mariaDB 中的 2 个表

我有2张桌子

Table1
Year,Month, data     
2017,1,2
2018,2,10

Table2
Year,Month,data2
2017,1,5
2019,2,2
Run Code Online (Sandbox Code Playgroud)

我正在尝试将这些表合并为 1 个表,其中我们从两个表中获取所有行,如下所示。

Year,Month,data,data2
2017 ,1,2,5
2018,2,10,NULL
2019,2,NULL,2
Run Code Online (Sandbox Code Playgroud)

似乎标准外连接在这里不起作用,我也不能使用 Union ALL 是否有某种外连接查询来完成此操作?

mysql sql join mariadb

1
推荐指数
1
解决办法
2316
查看次数