相关疑难解决方法(0)

在ASP.NET Core Web API中注册新的DelegatingHandler

我想创建一个新的Handler,它扩展了DelegatingHandler,使我能够在进入控制器之前做一些事情.我已经在各个地方读过我需要从DelegatingHandler继承,然后像这样覆盖SendAsync():

public class ApiKeyHandler : DelegatingHandler
{        
    protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
    {          
        // do custom stuff here

        return base.SendAsync(request, cancellationToken);
    }
}
Run Code Online (Sandbox Code Playgroud)

这是好的和花花公子,除了它没有做任何事情,因为我没有在任何地方注册!我再次在很多地方看到我应该在WebApiConfig.cs中这样做,但这不是Web API 的ASP.NET 核心版本的一部分.我试图找到类似于Startup.cs文件(Configure(),ConfigureServices()等)中的各种东西,但没有运气.

任何人都可以告诉我如何注册我的新处理程序?

c# asp.net-web-api asp.net-core-mvc asp.net-core asp.net-core-webapi

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

如何使用aspnet core 6 web api在浏览器中设置cookie?

我使用 Visual Studio 2022 创建了该项目,并选择了 aspnet core 6 Web api 模板。我正在尝试在浏览器中设置 cookie,但似乎我遗漏了一些内容,因为它没有在“网络” > “应用程序” > “Cookies”下设置任何内容

我的前端是一个反应应用程序。目前还没有额外的库。这是运行命令后的默认项目npx create-react-app <project-name>

我可以/weatherforecast毫无问题地调用端点。但由于某种原因,它没有设置cookie。

frontend call

const getData = async () => {
  await axios.get("/weatherforecast");
};
Run Code Online (Sandbox Code Playgroud)

WeatherForecastController.cs

public IActionResult Get()
{
  Response.Cookies.Append("myjwt", "ABCDE", new CookieOptions
  {
    Secure = true,
    HttpOnly = true,
    SameSite = SameSiteMode.None
  });

  return Ok();
}
Run Code Online (Sandbox Code Playgroud)

Program.cs

var builder = WebApplication.CreateBuilder(args);

const string AllowAllHeadersPolicy = "AllowAllPolicy";

builder.Services.AddCors(options =>
{
    options.AddPolicy(AllowAllHeadersPolicy,
        builder =>
        {
            builder
                .WithOrigins(new[] { …
Run Code Online (Sandbox Code Playgroud)

c# cookies asp.net-web-api .net-6.0

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