2

我想从 .NET 4.5 调用需要域身份验证的 REST 服务。(使用 Visual Studio 2012

搜索 Google 会导致很多人说 HttpClient 现在是执行此操作的方法。

但是据我所知,没有办法模拟或将凭据附加到 HttpClient。

此外,所有流行的 REST 库似乎都与 .NET 4.5 不兼容。

StackOverflow上的帖子建议 WebClient 作为解决此问题的一种方法,尽管这在 .NET 4.5 中似乎不再可用。

如果我想从 .NET 4.5 客户端调用具有域凭据的 REST 服务,最好的方法是什么?

4

1 回答 1

2

.NET 4.5 中的 HttpClient 确实支持域身份验证。您需要插入一个 'UseDefaultCredentials' 设置为 true 的 HttpClientHandler:

        string searchResults = string.Empty;

        try
        {
            HttpClientHandler handler = new HttpClientHandler();
            handler.UseDefaultCredentials = true;
            HttpClient client = new HttpClient(handler);

            client.MaxResponseContentBufferSize = 100000;
            string responseString = await client.GetStringAsync(RestServiceUrl);

            searchResults = responseString;
        }
        catch (HttpRequestException e)
        {
            searchResults = e.Message;
        }

另外值得注意的是,如果您正在构建 Windows 8 应用程序,那么您需要在 Package.appManifest 中启用“企业身份验证”:

在此处输入图像描述

于 2013-03-17T08:01:02.493 回答