我可以关闭模​​拟只是一对夫妇的情况下,(Can I turn off impersonation

2019-06-18 05:29发布

我有一个在整个使用模拟的应用程序。 但是,当用户登录作为管理员,几个操作要求他们写入到服务器本身。 现在,如果这些用户没有实际的服务器上的权限(有些没有),它不会让他们写。

我想要做的就是关闭模拟的只是一对夫妇的命令。

有没有办法做这样的事情?

using(HostingEnvironment.Impersonate.Off())
  //I know this isn't a command, but you get the idea?

谢谢。

Answer 1:

确保应用程序池确实有你需要的正当权益。

然后,当你想恢复到应用程序池标识...运行以下命令:

private WindowsImpersonationContext context = null;
public void RevertToAppPool()
{
    try
    {
        if (!WindowsIdentity.GetCurrent().IsSystem)
        {
            context = WindowsIdentity.Impersonate(System.IntPtr.Zero);
        }
    }
    catch { }
}
public void UndoImpersonation()
{
    try
    {
        if (context != null)
        {
            context.Undo();
        }
    }
    catch { }
}


Answer 2:

我不知道这是首选的方法,但是当我想做到这一点我new'd了一个实例的WindowsIdentity并称为模拟方法。 这使得随后的代码来模拟不同的Windows用户。 它返回一个WindowsImpersonationContext一个具有撤消方法,再次恢复了模拟环境。



Answer 3:

你可以关闭验证的页面,然后在你的代码的剩余时间内手动冒充身份验证的用户。

http://support.microsoft.com/kb/306158

这有可能是最后一个参考,但基本上你冒充User.Identity

这将意味着你将不得不在页面的任何呼叫开始模仿,把它关掉,当你需要它,然后重新打开它你完成的时候,但它应该是一个可行的解决方案。



Answer 4:

我刚刚结束了给文件夹的写权限,以“身份验证的用户”



文章来源: Can I turn off impersonation just in a couple instances