如何设置ClientCredentials?

我正在尝试使用WCF服务:

该服务的配置是:

                                        

当我尝试拨打该服务时:

 public async void LoadCities() { _client = new FlightInfoServiceClient(Maquette_MyAirport_Win8.FlightService.FlightInfoServiceClient.EndpointConfiguration.wsHttpBindingConfiguration, "http://servuucs.fr/FlightInfoWebService/FlightInfoService.svc"); var citiesResponse = await _client.GetAllCitiesAsync(new BaseRequest()); var myCities = citiesResponse.Cities; } 

我抓住了这个例外:

错误:UnAuthorizedAccess说明:您无权访问此服务

如何设置ClientCredentials?

正如@Paciv在评论中指出的那样,您可以通过代码完成此操作。 使用ClientCredentials.Windows属性设置它们,如下所示:

 _client.ClientCredentials.Windows.ClientCredential.Domain = "warzone42"; _client.ClientCredentials.Windows.ClientCredential.UserName = "user1428798"; _client.ClientCredentials.Windows.ClientCredential.Password = "p@ssw0rd"; 

在代码中设置凭证当然是不明智的。 如果您没有像上面那样以编程方式设置Windows用户,我相信运行客户端的用户的凭据会被发送(这可能是更典型的情况?)。

请注意,如果您在代码中设置凭据,您实际上可能正在寻找UserName身份validation 。