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

Asp.net 如何在打开虚拟目录时模拟其他用户?,asp.net,impersonation,virtual-directory,Asp.net,Impersonation,Virtual Directory,我们有一个ASP.NET(3.5)应用程序,它使用表单身份验证来验证帐户。在登录表单上,我还使用LogonUser获得了一个windows登录令牌,我使用它模拟登录用户浏览私有目录(文件显示在GridView中,用户在数据绑定之前被模拟)。我刚刚了解到,我们还需要在虚拟目录中模拟用户。是否有一种方法可以让我在加载虚拟目录之前模拟,或者在整个应用程序中模拟,而无需切换到Windows身份验证?如果您只是执行一项任务(如访问网络资源),我喜欢使用我创建的现有AD帐户,并用代码调用它 我喜欢将这里的示

我们有一个ASP.NET(3.5)应用程序,它使用表单身份验证来验证帐户。在登录表单上,我还使用LogonUser获得了一个windows登录令牌,我使用它模拟登录用户浏览私有目录(文件显示在GridView中,用户在数据绑定之前被模拟)。我刚刚了解到,我们还需要在虚拟目录中模拟用户。是否有一种方法可以让我在加载虚拟目录之前模拟,或者在整个应用程序中模拟,而无需切换到Windows身份验证?

如果您只是执行一项任务(如访问网络资源),我喜欢使用我创建的现有AD帐户,并用代码调用它

我喜欢将这里的示例抽象为一个helper类。这将允许做这样的事情

helperImpersonate hI = new helperImpersonate();

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

   //DO STUFF HERE...  

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

这就是我目前所做的,但我不确定当您浏览虚拟目录时,我们可以在代码中的何处进行模拟,或者整个事情是否由IIS处理。为什么在创建虚拟目录时,您不能使用预先选择的AD帐户访问虚拟目录?或者在创建安全目录后更改其下的设置?