为当前用户获取NetworkCredential(C#)

我试图调用一个控制台应用程序的Web服务,我需要提供一个System.Net.NetworkCredential对象的客户端。
是否可以为启动应用程序的用户创buildNetworkCredential对象而不提示用户名/密码?

如果被调用的Web服务使用Windows集成安全性,则从当前WindowsIdentity创buildNetworkCredential应该足以使Web服务使用当前用户的Windowslogin。 但是,如果Web服务使用不同的安全模型,则无法从当前身份提取用户密码…本身并不安全,允许开发人员窃取用户密码。 您可能需要为您的用户提供一些方法来提供其密码,并且如果您不希望他们必须重复提供密码,请将其保存在某个安全caching中。

编辑:要获取当前身份的凭据,请使用以下命令:

 Uri uri = new Uri("http://tempuri.org/"); ICredentials credentials = CredentialCache.DefaultCredentials; NetworkCredential credential = credentials.GetCredential(uri, "Basic"); 

您可以使用System.Security.Principal.WindowsIdentity.GetCurrent()获取用户名,但是没有办法获取当前用户密码!