我需要使用 Web 服务。该网络服务需要用户身份验证。当我尝试添加对 Web 服务的引用时,我收到一条错误消息
HTTP 请求未经客户端身份验证方案“匿名”授权。从服务器接收到的身份验证标头是“Basic realm="AXIS"”。远程服务器返回错误:(401) Unauthorized。如果在当前解决方案中定义了服务,请尝试构建解决方案并再次添加服务引用。
有没有办法摆脱这个错误?
我需要使用 Web 服务。该网络服务需要用户身份验证。当我尝试添加对 Web 服务的引用时,我收到一条错误消息
HTTP 请求未经客户端身份验证方案“匿名”授权。从服务器接收到的身份验证标头是“Basic realm="AXIS"”。远程服务器返回错误:(401) Unauthorized。如果在当前解决方案中定义了服务,请尝试构建解决方案并再次添加服务引用。
有没有办法摆脱这个错误?
您需要提供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";