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

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 投票
2 回答
1337 浏览

asp.net-core - .NET 6 如何在 program.cs 中自动运行迁移

在 .Net 5 中,我们过去可以通过将 DataContext 传递给 Configure 方法来调用迁移,并在启动类中调用迁移。

我们如何在 .Net 6 中做到这一点?

0 投票
1 回答
64 浏览

c# - 为什么 OkObjectResult OK() 在响应中添加“$id”:“1”?

我们有一个返回对象的 asp.net-core5 端点

但由于某种原因,我们收到的回复是

注意响应添加 :""$id": "1"" 并将属性更改为小写

这些方法是一个异步任务

我们回来

0 投票
1 回答
95 浏览

azure-ad-b2c - Microsoft.Identity Platform 登录循环

我一直在使用 Microsoft.Identity 平台并试图让它与 aspnetcore 6.0 中的基本模板一起使用,但我陷入了无限登录循环。

我正在使用从 web 应用程序和 web api 模板创建的项目(使用这些命令"dotnet new webapi --force --auth IndividualB2C""dotnet new webapp --force --auth IndividualB2C"),然后更新两者中的 appsettings 以连接到我的 Azure B2C 租户。

网页应用

网页接口

进行这些更改后,我可以运行应用程序,Web 应用程序将尝试通过我的社交帐户登录,然后进入登录服务器和应用程序重定向 URL 之间的无限循环重定向。

我确实收到一条引发 MicrosoftIdentityWebChallengeUserException 的日志消息(大概是因为我需要同意范围)。我的理解是[AuthorizeForScopes(ScopeKeySection = "DownstreamApi:Scopes")]Razor 页面上的属性应该为我处理这个同意工作流,但它似乎没有这样做。

在配置这些示例应用程序或捕获 WebChallenge 异常的方法时,我需要做些什么额外的事情(如果是,我如何将质询发回给用户)?

我觉得我在这里遗漏了一些明显的东西来使它起作用,但我似乎找不到它。任何人都可以提供一些指导以使其正常工作吗?

0 投票
0 回答
119 浏览

c# - 通过 .net 核心中的依赖注入传递多个 Db 上下文

我正在编写一个实用程序来更新 .NET 6.0 中我们每个环境中的设置,使用 Blazor Wasm (这在这里真的不重要......)。

我有三个数据库,代表 3 个不同的环境(它在 3 个地方是同一个数据库)。

我配置我的上下文如下

我的服务看起来像:

忽略宇宙选项...

我的数据库上下文都看起来像:

并且所有 3 都继承自 basecontext:

我的更新例程如下所示:

当我第一次使用 contextA 运行它时,它可以工作当我使用上下文 B 运行它时,它失败了,说它已被处理。

0 投票
0 回答
92 浏览

c# - 使用 Windows 身份验证时自定义声明的问题

我正在尝试为 Identity Server 4 实施 Windows 身份验证。

在我的代码中,我使用了与Identity server 4 windows authentication using extension Grant not working中描述的解决方案类似的解决方案

首先,我使用HttpSys具有适当方案的服务器

然后我添加Negotiate身份验证:

我还用这样的代码扩展了 Identity Server:

(代码WinAuthGrantValidator可以在这个答案 Identity server 4 windows authentication using extension Grant not working中找到)

这似乎有效,并且用户已通过身份验证。WindowsIdentityHttpContext.User.Identity- 到目前为止,非常好。

现在是我的问题,我也ProfileService像这样在 Identity Server 4 中注册:

它将一些数据添加到登录用户(作为附加声明) - 如果用户使用用户名和密码登录,则此方法有效。

不幸的是,当我使用 Windows 身份验证进行日志记录时,它会ProfileService被调用并添加一些声明,IssuedClaims但后来(在应用程序代码中)我尝试从中读取这些声明,HttpContext.User但没有它。你能帮我弄清楚为什么会这样吗?

非常感谢!

0 投票
1 回答
192 浏览

integration-testing - 对于 .net core 6 中的控制器调用,WebApplicationFactory 始终返回 404

我按照微软的文档进行集成测试: https ://docs.microsoft.com/en-us/aspnet/core/test/integration-tests?view=aspnetcore-6.0#introduction-to-integration-tests

在 .net core 6 中,startup.cs 已被删除,我之前使用的集成测试不再按原样工作。我需要进行更新。

在我的 API csproj 中,我添加了:

这是 Integration.Tests csproj:

我创建了一个 TestWebAppFactory.cs,例如:

还有我的 Item_Tests.cs:

注意:我希望能够将 ITestOuputHelper 发送到 TestWebAppFactory 以在输出中编写一些有用的信息,我不会在此处分享以减少代码量。

注意 2:当我启动 API 时,一切正常,我将在 Swagger 中查看我的控制器并使用代码 200 returnw 调用 get。

所以每次测试在这里失败:

响应总是得到 404 错误。

我应该怎么做才能使其正常工作?

谢谢

0 投票
0 回答
99 浏览

angular - Visual Studio 2022 中 Angular .NET Core 应用程序中的 Facebook 登录问题

我正在尝试使用带有 Angular 项目模板的 ASP.NET Core 使用 Visual Studio 2022 构建一个简单的应用程序。我从这里遵循 msdn 说明:https ://docs.microsoft.com/en-us/aspnet/core/security/authentication/social/facebook-logins?view=aspnetcore-6.0

  • 我选择身份验证类型个人帐户。

  • 创建示例应用程序后,我正在尝试添加 Facebook 身份验证。我在 facebook 开发人员部分配置我的 facebook 应用程序,然后在配置服务时添加 facebook 身份验证。到目前为止,一切都很好。

  • 我运行该应用程序转到登录页面单击 facebook 并通过 facebook 登录后出现以下错误:

    core.js:6479 错误错误:未捕获(承诺中):错误:无法匹配任何路由。URL 段:'signin-facebook' 错误:无法匹配任何路由。URL 段:'signin-facebook'

  • 我可以在网络选项卡(图 4)中看到带有身份验证令牌的 facebook 回调,但问题是我没有登录到我的应用程序。

另一方面,通过电子邮件帐户登录工作得很好。

因此,从错误看来,它的角度路由没有被定义,但实际上这个登录-facebook 路由应该由身份服务器处理,该身份服务器应该在 ASP.NET 用户身份表中创建用户帐户。

我真的很感谢你帮助解决这个问题。

图 1:创建应用程序 创建应用

图 2:Facebook 身份验证配置: Facebook 身份验证配置

图 3:facebook 回调错误 在此处输入图像描述

图 4:网络选项卡中的错误回调 在此处输入图像描述

0 投票
1 回答
163 浏览

asp.net-core - 最小托管模型:从 Program.Main 退出,退出代码 = '0'

从旧版Program/迁移 ASP.NET Core 6 应用程序Startup以使用新的最小托管模型后,我收到一组无法描述的错误。

错误信息

我已明确启用UseDeveloperExceptionPage()安全,但我在浏览器中收到的只是通用的:

HTTP 错误 500.30 - ASP.NET Core 应用程序无法启动

在事件查看器中,事件 1011 被记录:

物理根目录为“C:\Code”的应用程序“/LM/W3SVC/2/ROOT”已从 Program.Main 退出,退出代码为“0”。请检查 stderr 日志以获取更多信息。

随后是事件 1007:

具有物理根目录“C:\Code”的应用程序“/LM/W3SVC/2/ROOT”无法加载 coreclr。

异常消息:CLR 工作线程过早退出

运行 IIS Express 或 Kestrel 时,调试控制台中没有更多信息可用。但是,我能够从我Program的记录中看到其他启动过程,因此知道它们正在正确加载。

代码

这是我的Program文件的简化版本,删除了自定义组件:

以前的主题

由于这些确实是一般性错误,因此之前有很多与此问题相关的可用线程——但似乎没有一个适用于这种情况。(很多都与我没有使用的ASP.NET Core Hosting Bundle有关。)

问题

这个问题有常见的原因吗?或者,是否有其他方法可以调试此场景?

0 投票
1 回答
272 浏览

c# - 使用 Kestrel https .net core 6

我在 .net core 5 中有应用程序。这是 Startup.cs 中的代码

'''''

我想把它升级到.net core 6

我以为会是这样

但是当我尝试编译它时它不起作用。

提前感谢您提供任何解决方案。

0 投票
1 回答
140 浏览

c# - 在 .NET CORE 中为多个控制器使用公共基础控制器时如何处理依赖注入

我有一个 UserController 和一个 BaseController ,其中注入了一些函数和依赖项,如下所示。BaseController 在多个控制器之间共享。但是所有控制器都不需要来自 BaseController 的所有注入依赖项。Controller1 需要依赖 D1 和 D2,但 Controller2 只需要来自 BaseController 的 D1。我怎样才能做到这一点?

在下面的代码中,UserController 不需要从基础注入 webHostEnvironment,但我需要注入它,因为它存在于 BaseController 中,否则 Visual Studio 会抛出缺少依赖项的编译器错误。如果需要更多详细信息来解决问题,请告诉我。

用户控制器

基本控制器