我的网络应用程序设置为使用Windows身份验证,并且模拟设置为true。
<authentication mode="Windows"/>
<identity impersonate="true"/>
当我在本地计算机(IIS6)上运行它时,我使用当前登录访问Active目录。
WindowsIdentity curIdentity = WindowsIdentity.GetCurrent();
WindowsPrincipal myPrincipal = new WindowsPrincipal(curIdentity);
然而,当我远程访问我的网站时,模拟似乎没有起作用;我显示用户所属的组 - 并获得一个非常短的列表!
我还需要什么?
答案 0 :(得分:1)
模拟不会在机器之间传递超过1跳的凭据。所以你的信誉从你的机器转到IIS,但没有进一步,访问活动目录是第二跳。当一切都在同一台机器上运行时(就像你当地的情况一样),它会正常工作。
http://msdn.microsoft.com/en-us/library/aa292118(VS.71).aspx
答案 1 :(得分:-1)
我很确定你需要指定一个用户:
<identity impersonate="true" userName="contoso\Jane" password="pass"/>
否则它将使用具有有限权限的ASP.Net用户。
有关详细信息,请参阅here(包括如何存储加密的用户名/密码)。