gpt4 book ai didi

asp.net-mvc - 如何使用 IHttpActionResult 设置 header

转载 作者:行者123 更新时间:2023-12-05 09:19:13 27 4
gpt4 key购买 nike

我想将 token 添加到 webapi 请求的 header 中。我怎样才能做到这一点 ?

这是我的示例代码

public IHttpActionResult Authenticate(Login data)
{
var Token = "fdsf123546fskjhf-gsuyuhsh";

//here add these token to header

return ?
}

谢谢。

最佳答案

  1. 你可以使用 ResponseMessageResult类:

    public IHttpActionResult Authenticate(Login data)
    {
    var Token = "fdsf123546fskjhf-gsuyuhsh";

    var response = new HttpResponseMessage();

    response.Headers.Add("Authentication", Token);

    return new ResponseMessageResult(response);
    }
  2. 或者创建您自己的结果类:

    public class HeaderActionResult : IHttpActionResult
    {
    private Tuple<string, string> header;

    public HeaderActionResult(Tuple<string, string> header)
    {
    this.header = header;
    }

    public Task<HttpResponseMessage> ExecuteAsync(CancellationToken cancellationToken)
    {
    var response = new HttpResponseMessage();

    response.Headers.Add(header.Item1, header.Item2);

    return Task.FromResult<HttpResponseMessage>(response);
    }
    }

    public IHttpActionResult Authenticate(Login data)
    {
    var Token = "fdsf123546fskjhf-gsuyuhsh";

    return new HeaderActionResult(Tuple.Create("Authentication", Token));
    }
  3. 或者使用扩展方法向任何现有的 IHttpActionResult 对象添加 header :

    public static class HttpActionResultExtensions
    {
    public static IHttpActionResult AddHeader(this IHttpActionResult actionResult, string name, string value)
    {
    return new HeaderActionResult(actionResult, name, value);
    }

    private class HeaderActionResult : IHttpActionResult
    {
    private readonly IHttpActionResult actionResult;

    private string name;

    private string value;

    public HeaderActionResult(IHttpActionResult actionResult, string name, string value)
    {
    this.actionResult = actionResult;

    this.name = name;

    this.value = value;
    }

    public async Task<HttpResponseMessage> ExecuteAsync(CancellationToken cancellationToken)
    {
    HttpResponseMessage httpResponseMessage = await this.actionResult.ExecuteAsync(cancellationToken);

    httpResponseMessage.Headers.Add(this.name, this.value);

    return httpResponseMessage;
    }
    }
    }

关于asp.net-mvc - 如何使用 IHttpActionResult 设置 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41446878/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com