在Windows通用应用程序中设置HttpClientHandler凭证时抛出异常

本文关键字:HttpClientHandler 凭证 抛出异常 设置 Windows 应用程序 | 更新日期: 2023-09-27 17:49:39

我知道这在技术上仍然是一个预览,这可能是一个已知(或未知)的问题,但我也可能错过了一些明显的东西(特别是不能设置凭据听起来很重要,微软可能已经修复了它)。

复制:

public class Credentials : ICredentials
{
    public NetworkCredential GetCredential(Uri uri, string authType)
    {
        return new NetworkCredential("username", "password");
    }
}
public App()
{
    this.InitializeComponent();
    this.Suspending += OnSuspending;
    try
    {
        var credentials = new Credentials();
        var httpc = new HttpClientHandler();
        httpc.UseDefaultCredentials = false;
        httpc.Credentials = credentials;
    }
    catch (Exception ex)
    {
        return;
    }
}

异常详细信息如下:

消息:

Value cannot be null.
Parameter name: format
异常堆栈

:

at System.String.FormatHelper(IFormatProvider provider, String format, ParamsArray args)
at System.Net.Http.HttpClientHandler.set_Credentials(ICredentials value)
at WinTenTest.App..ctor()

我的意思是,内部问题很明显,但我不知道为什么。在没有调用凭据类的GetCredential的情况下抛出异常,所以不是这样。

同样的代码在Windows 8.1应用程序中运行完美。

我正在使用VS2015 RC,最新的W10构建和最新的开发工具,所以我也没有过时。

在Windows通用应用程序中设置HttpClientHandler凭证时抛出异常

正如Yuval Itzchakov在问题下面评论的那样,在这种情况下,你可以直接执行

httpc.Credentials = new NetworkCredential("", "")

httpc.Credentials = credentials.GetCredential(uri, authType).

我仍然很好奇为什么W10打破了W8.1的工作,但现在它不那么重要了。

相关文章:
  • 没有找到相关文章