如何在打开虚拟目录时模拟不同的用户?

发布于 2024-07-24 02:08:08 字数 217 浏览 4 评论 0原文

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

We have an ASP.NET (3.5) application which uses Forms Authentication to authenticate accounts. On the logon form, I also get a windows login token using LogonUser, which I use to impersonate the logged on user for browsing private directories (the files are displayed in a GridView, and the user is impersonated just before the data is bound.) I just learned that we also need to impersonate the user in a virtual directory. Is there a way for me to impersonate just before the virtual directory is loaded, or across the entire application without switching to Windows Authentication?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

执妄 2024-07-31 02:08:09

如果您只是执行一项任务(例如访问网络资源),我喜欢使用我为此目的创建的现有 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...

If you are just performing a single task (like accessing a network resource) I like to use an existing AD account I create just for such purposes and call it in-code.

I like to abstract out the example found here http://support.microsoft.com/kb/306158, into a helper class. This will allow to do something like this...

helperImpersonate hI = new helperImpersonate();

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

   //DO STUFF HERE...  

    hI.undoImpersonation(); //undo the impersoination
}//end if impersonate is true...
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文