使用C#中的HttpClient进行基本身份验证,无需硬编码密码



我正在使用System.Net.Http.HttpClient调用API,并且正在使用基本身份验证。客户端正在作为windows服务运行。我正在寻找一种通过基本身份验证触发API的方法。

我知道我可以用之类的东西

var base64String=; client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Basic", EncodeBase64(GetBytes("username:password")));

我不想输入,username&pasword或base64编码的凭证。是否可以获取当前用户的凭据,以便不在应用程序中维护凭据(在配置文件或代码中(。

我不想在应用程序中维护凭据,因为在设置过程中编辑配置文件(或在维护凭据的地方(和添加凭据是一个乏味的过程,而且在配置文件中拥有凭据是不安全的,因为它是可读的。

我建议您不要对这些凭据进行硬编码,最好是从数据库等安全散列的地方获取它们。如果你只是不想输入用户名&密码或base64编码的equivalant,那么我建议您考虑除了基本身份验证之外的其他选项。

其他选项可以是windows身份验证、azure甚至客户端证书。

最新更新