C# - 利用缓存的Windows凭据(WinForms)

时间:2017-09-22 17:22:57

标签: c# active-directory networkcredentials

有没有办法在C#中使用当前用户的凭据而不实际获取值?

例如,使用System.Net.CredentialCache.DefaultNetworkCredentials或任何可行的方法。

我环顾四周,但找不到详细说明我想要做的事情。

基本上我只是在寻找我的应用程序以使用当前用户的信息进行AD身份验证 - 这类似于Outlook如何检测当前用户并自动设置而不提示用户/通过。

或者例如,如果在我的应用程序中我有电子邮件功能,而不是提示用户/通行证发送电子邮件 - 我只能传递缓存的凭据。

那种事。

1 个答案:

答案 0 :(得分:1)

如果您正在使用AD / Kerberos,请阅读:https://docs.microsoft.com/en-us/dotnet/standard/security/principal-and-identity-objects

  • 如果您想查看用户帐户是否与广告联盟中的OU,CN,群组甚至分支相关联,则非常有用。

如果您基本上使用的是WorkGroups,那么:https://msdn.microsoft.com/en-us/library/system.environment(v=vs.110).aspx

  • 用于获取基于HTTPRequest的基本信息; IP,域,用户名,工作站名称等

这几乎是你唯一的两个可靠选择。

我已经使用两种类型的Auth Acquisitions获取某些信息,等待基础设施和使用。