问题标签 [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 投票
0 回答
120 浏览

asp.net-core-webapi - 无法在 ASP.NET Core 6.0 最小 API 中为模型/类添加 [FromHeader] 属性

我正在尝试在 .NET 核心最小 API 中添加多个自定义标头,因此我[FromHeader]在输入参数前面添加了属性。

它工作正常,我可以大摇大摆地看到那些标题。

但我正在寻找一种更好的方法将所有这些标头保存到类/模型中,并尝试通过[FromHeader]在该模型前面使用属性将其添加到 API 标头中。

这样,我收到此错误

找不到标头的公共静态布尔方法 Testheader.tryparse(string,out TestHeaders) 找到的方法

这是代码:

模型

我的问题:有没有办法将所有这些标头保存在单个类/模型中并[FromHeader]在控制器中为该特定类添加属性?

这种方法在以前的 .net 核心版本中有效,但在 6.0 中无效,有什么具体原因吗?或者我在这里遗漏了什么?

0 投票
1 回答
305 浏览

c# - 在 ASP.NET Core 6 的 program.cs 中添加配置服务

基础设施层的配置之一

客户管理配置.cs

程序.cs

这种方式在 .NET 6 中不起作用。

IServiceCollection services我对实例有红色警告

例外:

当前上下文中不存在名称“服务”

0 投票
1 回答
38 浏览

azure-servicebus-topics - How to set up ServiceBusTrigger with Dependency Injection with .Net Core 6.0 Isolated

I currently have a ServiceBus Trigger in .Net Core 6.0 Isolated. Trying to figure out how to Use Dependency Injection, to set up the Trigger. Trying to figure out how to do this with .Net Core 6.0 Isolated. I have a strongly typed model that is Bound to the appsettings.json file in the Program.cs code. That part works and has been verified. However when trying to do this with .Net Core 6 Isolated It give error about missing reference.

Here's my Config model that is bound to the appsettings.json file. I have left out the appsettings.json file for simplification

Here is the Service bus trigger class

0 投票
1 回答
116 浏览

c# - 如何在 Program.cs 中调用 SeedRoles 方法

我正在尝试为我的应用程序构建一个授权系统(基于角色的授权)。

我有种子角色类,但我不知道Program.cs每次当应用程序像以下代码一样运行时调用种子方法的正确方法:

0 投票
0 回答
29 浏览

c# - 为什么 IOrderedFilter 使用 order int.MaxValue - 10 以及其他过滤器使用哪个 order?

我正在尝试在基于 ASP.NET Core 6 的 Web 应用程序中实现一个额外的过滤器。现在,已经实现了一个过滤器来处理OnActionExecuted. 这个过滤器实现了IOrderedFilter接口,它的Order定义如下:

我要实现的新过滤器应该在控制器操作内的代码执行之前运行。现在我有两个问题:

  1. 为什么int.MaxValue - 10使用第一个过滤器?我也在不同网站上的几个示例中看到了这种指定顺序的相同方式,但我不明白为什么有人会使用这个确切的数字。这有什么原因吗?
  2. 我应该为我的新过滤器使用哪个顺序?或者这无关紧要,因为与其他过滤器不同,它应该在控制器操作之前执行?
0 投票
2 回答
48 浏览

c# - 当控制器动作没有对应的参数时,如何在动作过滤器中获取参数?

我正在开发基于 ASP.NET Core 6 的 Web 应用程序。为了避免在我的控制器中编写大量冗余代码,我实现了一个BaseController所有控制器都继承自的类。在那个类中,我重写了OnActionExecutionAsync运行代码的方法,否则这些代码在每个控制器中都是多余的。在这段代码中,我需要访问两个参数,否则我必须通过它的参数传递给每个控制器操作,如下所示: public async Task<ActionResult> ExampleAction([FromQuery(Name = "argument1")] Guid? argument1, [FromQuery(Name = "argument2")] Guid? argument2)

只要我在每个动作中保留这些参数,我就可以在OnActionExecutionAsync方法中轻松访问它们。但是,我不想这样做,因为它需要我将参数添加到每个控制器操作,而我什至不需要它们。现在我遇到的问题是,当我从控制器操作中删除参数时,我无法再通过方法访问context.ActionArguments它们OnActionExecutionAsync

在这种情况下,有什么办法我仍然可以访问参数吗?我已经在 SO 上找到了这个非常相似的问题,但建议使用的解决方案actionContext.ControllerContext.RouteData.Values["tenant"]在我的情况下不起作用。ControllerContextASP.NET Core 6中根本没有,并且context.RouteData.Values似乎不包含我正在寻找的论点。

0 投票
1 回答
32 浏览

c# - 如何不在 OnActionExecutionAsync 中为特定操作执行附加代码?

我创建了一个BaseController在我的 ASP.NET Core 6 项目中调用的基本控制器类,其中包括我在其他控制器中需要的一些基本功能。我还在其中的OnActionExecutionAsync方法中运行了一些额外的代码,BaseController否则我必须在每个控制器操作中运行这些代码。但是,在极少数情况下,我不想在操作之前运行此代码。一个示例是任何与身份验证/登录相关的操作。有没有一种方法可以让我跳过通过OnActionExecutionAsync特定控制器操作运行附加代码?我正在考虑类似于我可以[AllowAnonymous]用来允许未经身份验证的用户访问特定操作的方法。

0 投票
1 回答
178 浏览

c# - 如何在 .Net Core 中设置自定义 Oauth 2

请考虑 program.cs 中的以下代码:

以下是我的帐户控制器内:

上面的代码有效。会发生以下情况:

  1. 我点击 LoginViaDiscord 按钮
  2. 调用 SignIn post 方法
  3. 我被重定向到不和谐
  4. 我通过不和谐登录
  5. 我被重定向回 LoginCallback

当我查看网站时,我已经完全登录。问题是我跳过了记录用户并创建帐户的整个数据库步骤。

当我使用 MVC 5 进行类似的身份验证时,我将有一个回调操作方法,并且该回调方法将完成所有设置。创建用户,围绕用户执行逻辑,然后登录。但是,使用此代码,我已经完全登录,并且没有涉及数据库步骤。

我的问题是当挑战返回到 LoginCallback 时如何正确完成与上述相同但不登录的操作,以及如何从 LoginCallback 操作中的不和谐中检索信息?我想在允许用户登录之前对用户执行一些逻辑,并且我还想确保他们的帐户是在数据库中创建的。

0 投票
1 回答
62 浏览

c# - 如何将 UserManager 注入 Program.cs 或 Startup.cs

这是我的代码的一部分:

取消注释时,它可以工作,但是 BuildServiceProvider 方法上有一个警告(绿色下划线)说:

ASP0000:从应用程序代码调用 BuildServiceProvider 会导致创建单例服务的附加副本。

那么在 ConfigureServices 中获取 UserManager 的替代方法是什么?我不能注入它,因为 ConfigureServices 方法只接受零个或一个参数,它必须是 IServiceCollection。

0 投票
1 回答
100 浏览

c# - 防止 VS2022 .net Core API 构建中的随机端口号

我通过 Visual Studio 2022 创建了一个 .net Core 6 API。它工作正常,一切正常,它启动并且 Swagger 显示我的 API 全面工作。我的其他本地应用程序可以按预期访问 API 端点。

有时,当我点击 时F5,该应用程序会在不同的端口成功且功能齐全地启动,主要是在机器重启后。这造成了我的其他应用程序无法找到它并且必须不断重新配置的问题,这既烦人又荒谬。

但是,我所做的任何事情似乎都不会对其产生任何影响。

我经历了很多很多事情,试图找到解决方案。

我的 VS 生成的Program.cs文件如下所示:

此模式与我能找到的任何其他问题、答案甚至大多数教程都不匹配。我认为这可能是 .net Core 6 的新模式。

builder, builder.Services, 也不包含app任何UseUrl()看起来与 URL 相关的方法或任何东西。

该术语IHostBuilder没有出现在应用程序的任何地方,因此任何涉及该术语的解决方案都让我迷失了方向。

根本没有出现“主机”一词Program.cs

appsettings.json没有“网址”属性。添加它不会做任何事情。在这种情况下,任何应该使用它的东西都不能存在。

端口号(在我的例子中是 49153)没有出现在项目的任何地方。

launchsettings.json指定了 applicationUrl。这是一个我从未见过的端口号。改变它没有效果。将“ASPNETCORE_URLS”添加到“environmentVariables”没有任何效果。更改此文件中的 Docker“launchUrl”确实会更改默认情况下在浏览器中打开的 URL,但随后找不到该 URL。

我对 Docker 的了解不多,我不确定这是否会影响服务器端口,但Dockerfile似乎没有设置或引用任何端口号。