使用Windows身份验证使用c#登录到站点

时间:2008-09-18 17:41:58

标签: c# windows-authentication

我想使用登录的当前用户的Windows身份验证登录程序内的服务器。我想也许我可以使用

System.Security.Principal.WindowsIdentity.GetCurrent()。名称

虽然这确实给出了一个名字,但我看不出如何找到输入用户的密码。

6 个答案:

答案 0 :(得分:2)

绝对无法获取Windows用户的密码,因为Windows甚至不存储它(它存储的所有内容都是不可逆转的哈希)。

答案 1 :(得分:1)

您无法获取密码。您需要使用Impersonation将身份传递给您尝试连接的服务器。

答案 2 :(得分:1)

除非用户将密码提供给您的应用程序,否则您将无法使用其密码进行基本登录。您必须根据本地登录用户进行一些模拟或委派授权。

答案 3 :(得分:1)

web.config中的

  <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属性。