0
我想在我的asp.net c#网站上模拟一个远程活动目录帐户,该网站托管在无域计算机(或其他域)上。我已经得到这个工作:获取当前模拟用户的用户名
IntPtr token = IntPtr.Zero;
LogonUser("username", "ad.some.other.domain.com", "password", LOGON_TYPE_NEW_CREDENTIALS, LOGON32_PROVIDER_WINNT50, ref token))
{
WindowsImpersonationContext wic;
wic = WindowsIdentity.Impersonate(token);
//run code under the impersonated user.
//System.Environment.UserName returns windows user (not impersonated one)
//WindowsIdentity.GetCurrent() returns windows user (not impersonated one)
}
我的代码运行,但我无法获得模拟用户的'用户名'。我知道这是因为我使用LOGON_TYPE_NEW_CREDENTIALS作为我的登录类型,它在技术上不模仿,但使用令牌在模拟帐户下运行网络连接。这工作正常,但理想情况下,我的网站将在模拟用户下运行,所以我可以获取用户名和其他可能的功能。基本上我想作为模拟用户与网站进行交互,而不仅仅是作为模拟用户运行网络连接。我试过LOGON32_LOGON_INTERACTIVE作为登录类型,但这不允许我在我的网站上运行的域计算机上验证域帐户。
有什么我可以做的,以便我可以充分模仿(获取用户名等)并使用来自无域计算机的活动目录进行身份验证?
谢谢你,是的,我已经在我的web.config文件。我的网站是asp.net(没有mvc或项目只是标准网站)。 – russds 2013-04-25 19:05:12