为当前用户获取NetworkCredential(C#)
我试图调用一个控制台应用程序的Web服务,我需要提供一个System.Net.NetworkCredential
对象的客户端。
是否可以为启动应用程序的用户创buildNetworkCredential
对象而不提示用户名/密码?
- 在Ember.JS应用程序中强制执行用户/身份validation状态的最佳方法
- 有没有简单的方法来预处理和redirectGET请求?
- 如何使用PHP curl使用HTTP基本身份validation进行请求?
- Angularfire 2错误:指定的身份validation提供程序未启用此Firebase
- HTTP规范:代理授权和授权标头
如果被调用的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()获取用户名,但是没有办法获取当前用户密码!