我想使用登录的当前用户的Windows身份验证登录程序内的服务器。我想也许我可以使用
System.Security.Principal.WindowsIdentity.GetCurrent()。名称
虽然这确实给出了一个名字,但我看不出如何找到输入用户的密码。
答案 0 :(得分:2)
绝对无法获取Windows用户的密码,因为Windows甚至不存储它(它存储的所有内容都是不可逆转的哈希)。
答案 1 :(得分:1)
您无法获取密码。您需要使用Impersonation将身份传递给您尝试连接的服务器。
答案 2 :(得分:1)
除非用户将密码提供给您的应用程序,否则您将无法使用其密码进行基本登录。您必须根据本地登录用户进行一些模拟或委派授权。
答案 3 :(得分:1)
:
<system.web>
<authentication mode="Windows" />
<identity impersonate="true"/>
</system>
答案 4 :(得分:0)
如果您打算使用Windows用户身份验证,您可能应该使用比简单用户名/密码组合更安全的部分内容。 (并且可能无法访问密码,因为这意味着每个.NET应用程序都可以访问您的完整帐户信息。)
例如,对于跨所有Windows NT实现的用户,WindowsIdentity.User被声明是唯一的。 (我相信这意味着在任何Windows NT实现中,这对于给定系统上的每个用户都是唯一的......但我不确定。)
答案 5 :(得分:0)
如果客户端和服务器都在同一个域中,则不必指定用户名和密码。
如果您使用的是HttpRequest,则应设置LogonUserIdentity。
如果要调用SOAP服务,则应设置Credentials属性。