我们的客户有一个 Java Web 服务,我们希望从 c#.net 应用程序中使用它,但是当我尝试使用或调用任何方法时,我收到一条Internal Error消息。此 Web 服务需要用户名和密码才能通过服务器(托管 WS 的位置)进行身份验证。
我使用 Soap UI 测试 Web 服务,并从 java WS 获得响应,但前提是我选择了 Preemptive Autorizathion 选项。当我选择另一个选项时,我收到一个错误,正如我上面写的。
WS是用Java开发的,而我们的应用程序是用.NET Framework 2.0开发的,所以问题是:有没有办法在c#中使用抢先授权进行身份验证?
如果有帮助,WS 托管在 HTTPS 站点上。
这是我用来向服务器进行身份验证的一些代码。
NetworkCredential netCredential = new NetworkCredential(username, password);
Uri uri = new Uri(service.Url);
ICredentials credentials = netCredential.GetCredential(uri, "Basic");
service.Credentials = credentials;
service.PreAuthenticate = true;
Run Code Online (Sandbox Code Playgroud)
我也试过这个代码:
string usernamePassword = username + ":" + password;
CredentialCache mycache = new CredentialCache();
WebRequest myReq = WebRequest.Create(s.Url);
myReq.Headers.Add("Authorization", "Basic " + Convert.ToBase64String(new ASCIIEncoding().GetBytes((usernamePassword))));
mycache.Add(new …Run Code Online (Sandbox Code Playgroud)