3

我需要使用 Web 服务。该网络服务需要用户身份验证。当我尝试添加对 Web 服务的引用时,我收到一条错误消息

HTTP 请求未经客户端身份验证方案“匿名”授权。从服务器接收到的身份验证标头是“Basic realm="AXIS"”。远程服务器返回错误:(401) Unauthorized。如果在当前解决方案中定义了服务,请尝试构建解决方案并再次添加服务引用。

有没有办法摆脱这个错误?

4

1 回答 1

4

您需要提供Credentials来自您的代码并配置clientCredentialType类型和realm来自您的app.config文件。

请按照以下步骤操作:

第 1步: 在您的文件
中添加以下一组标签。app.config

<security mode="TransportCredentialOnly">
<transport clientCredentialType="Basic" proxyCredentialType="None"
 realm="AXIS" />

第2步:

从您的代码访问 API 之前,您需要提供凭据(用户名和密码)。

//您的代码中必须已经有以下两行代码。假设您的 WebServiceCLient 为ProjectWebServiceClient

ProjectWebServiceClient client;
client = new ProjectWebServiceClient();

//在源代码中添加以下两行代码:

 client.ClientCredentials.UserName.UserName = "yourusername";
 client.ClientCredentials.UserName.Password = "yourpassword";
于 2013-11-12T04:02:27.100 回答