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

时间:2018-04-11 11:43:10

标签: c# asp.net-web-api basic-authentication

我正在阅读一篇代码示例,其中展示了如何使用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);

在授权字之后没有基本单词存在 ....所以它是怎么做的 工作?

相当签名应该看起来像授权:基本anNtaXRoOlBvcGNvcm4 =

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

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

感谢

1 个答案:

答案 0 :(得分:3)

API可以任意方式自由实施授权。 计划"基本" Windows上的IIS用于确认用户帐户是否正确,但API可以使用任何方案,或者不使用任何方案。

"基本"没有什么特别之处。除了这是一个共同的惯例。只要Authorization标头的参数值是API所期望的值,它就应该起作用。