如何在打开虚拟目录时模拟其他用户?

时间:2009-06-09 18:18:10

标签: asp.net impersonation virtual-directory

我们有一个ASP.NET(3.5)应用程序,它使用表单身份验证来验证帐户。在登录表单上,我还使用LogonUser获取一个Windows登录令牌,我用它来模拟登录用户浏览私人目录(文件显示在GridView中,用户在绑定数据之前就被模拟了。)我刚刚了解到我们还需要在虚拟目录中模拟用户。有没有办法让我在加载虚拟目录之前模拟,或者在没有切换到Windows身份验证的情况下在整个应用程序中进行模拟?

2 个答案:

答案 0 :(得分:1)

如果您只是执行单个任务(如访问网络资源),我想使用我为此目的创建的现有AD帐户,并在代码中调用它。

我喜欢将这里找到的示例http://support.microsoft.com/kb/306158抽象为一个帮助器类。这将允许做这样的事情......

helperImpersonate hI = new helperImpersonate();

if (hI.impersonateValidUser("ADUSERNAME", "DOMAIN", "PASSWORD"))
{

   //DO STUFF HERE...  

    hI.undoImpersonation(); //undo the impersoination
}//end if impersonate is true...

答案 1 :(得分:0)

虽然这篇文章已有几年历史,但它在解释模仿和授权方面做得很好。它讨论了设置虚拟目录以支持这一点:

http://msdn.microsoft.com/en-us/library/ms998351.aspx