繁体   English   中英

使用当前用户凭据调用 web 服务

[英]calling web service using current users credentials

我有一个 web 服务,该服务位于我的 web 服务器之外的另一台服务器上,并且该服务需要 function 的域用户。 我们有 NTLM 身份验证,我的应用程序是 web 部件。 每当用户输入信息并单击提交时,都会调用 web 服务并完成其工作。 有人可以告诉我如何在将用户凭据传递给它的同时调用 web 服务。我需要拥有当前登录用户的凭据,以便它可以针对 web 服务进行身份验证。

我也尝试了下面的东西,但它不起作用

我尝试使用CredentialCache.DefaultNetworkCredentials传递给 web 服务。 通过阅读帮助,这应该返回当前用户域、用户名和密码。

DefaultNetworkCredentials实际上返回空白值,例如

DefaultNetworkCredentials.Domain = ""

当一切都设置为使用 windows 集成 (NTLM) 身份验证时,这应该是可能的。 这意味着您的网络服务器和运行网络服务的网络服务器。 当然,所有服务器都必须在同一个域中。

您不应该通过 DefaultNetworkCredentials。 只需将 CredentialCache.DefaultCredentials 传递给 webrequest 就可以了,如下所示:

HttpWebRequest req = (HttpWebRequest)WebRequest.Create(uri);
req.Credentials = CredentialCache.DefaultCredentials;

除非您要求用户提供他们的域/用户名和密码,否则绝对没有办法做到这一点。 这是一项旨在保护用户的安全功能。 如果您可以简单地调用 CredentialCache.DefaultNetworkCredentials 并拥有每个人的用户名/密码,那么您将能够轻松地假设他们的身份。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM