Windows凭据未通过使用Windows.Web.Http.HttpClient传递

时间:2015-12-14 21:35:08

标签: .net win-universal-app

我的应用程序正在尝试向我们域上的服务发出请求,但它无法通过,运行应用程序的用户的Windows凭据导致每个服务调用的登录请求(有几个在排......太烦人了)

如果我将ServerCredential设置为PasswordCredential(使用HttpBaseProtocolFilter)并使用硬编码信息(资源,用户名,密码),那么一切正常,但这还不够,因为它需要能够传递任何用户使用该应用程序的信誉。

示例:

var filter = new HttpBaseProtocolFilter
{
    ServerCredential = new PasswordCredential("ourServiceHost", "username", "password")
});

var client = new HttpClient(filter);

我在某处读到没有设置ServerCredential会导致它默认为当前用户的Windows凭据,但这似乎并没有发生。

想法?

1 个答案:

答案 0 :(得分:2)

您需要在应用的 Package.AppxManifest 中选择企业身份验证功能。

要避免用户名和密码提示,请禁用用户界面:

HttpBaseProtocolFilter filter = new BaseProtocolFilter();
filter.AllowUI = false;
HttpClient client = new HttpClient(filter);