代码之家  ›  专栏  ›  技术社区  ›  Mist

WebAPI:基本身份验证如何在没有basic这个词的情况下工作

  •  0
  • Mist  · 技术社区  · 6 年前

    我正在阅读一个编写代码的示例,该示例演示了如何使用api实现基本身份验证。文章链接是 https://www.infoworld.com/article/2990800/application-architecture/implement-http-authentication-in-web-api.html

    查看他们向服务器发送凭据的客户端代码。

    public void BasicAuthenticationTest()
    {
        string username = Convert.ToBase64String(Encoding.UTF8.GetBytes("joydip"));
        string password = Convert.ToBase64String(Encoding.UTF8.GetBytes("joydip123"));
        HttpClient client = new HttpClient();
        client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Authorization", username + ":" + password);
        var result = client.GetAsync(new Uri("http://localhost/IDG/api/default/")).Result;
        Assert.IsTrue(result.IsSuccessStatusCode);
    }
    

    特别看这一行 client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Authorization", username + ":" + password);

    没有 基本单词 存在 授权字后 。。。。那么它是如何 工作

    而签名应该是 授权:基本ANNTASROOLBVCGNVCM4=

    所以请有人给我一些关于它的知识。

    最后一个问题,在基本身份验证的情况下,我们是否可以从服务器端返回令牌? 如果可能的话,分享一些在基本身份验证的情况下如何返回令牌的知识。

    谢谢

    1 回复  |  直到 6 年前
        1
  •  3
  •   Crowcoder    6 年前

    API可以自由地以任何方式实现授权。这个 计划 Windows上的IIS使用“Basic”来确认用户帐户是否正确,但API可以使用任何方案,也可以不使用任何方案。

    “基本”没有什么特别之处,只是它是一种常见的惯例。只要授权头的参数值是API所期望的,它就应该工作。