【问题标题】:ASP.NET Impersonation To Open a File ShareASP.NET 模拟打开文件共享
【发布时间】:2012-04-20 07:49:48
【问题描述】:

我试图在我的 C# 代码中模拟用户以在 Windows 资源管理器中打开文件共享。但它不工作!我的代码如下。

Impersonator i = new Impersonator();

using (new Impersonator("userA", "domainA", "pa$$word", LogonType.LOGON32_LOGON_INTERACTIVE, LogonProvider.LOGON32_PROVIDER_DEFAULT))
{
    Process.Start(@"c:\windows\explorer.exe", @"\\fileshare\abc");
    Response.Write("Impersonated User: " + WindowsIdentity.GetCurrent().Name + "<br />"); 
    Response.Write("Logon User: " + Request.ServerVariables["LOGON_USER"] + "<br />"); 
    Response.Write("Authenticated User: " + Request.ServerVariables["AUTH_USER"] + "<br />") 
}

我正在使用代码从该站点进行模拟:

http://platinumdogs.wordpress.com/2008/10/30/net-c-impersonation-with-network-credentials/

我在想这是因为我使用的是 Windows 身份验证,所以 Logon & Authenticated 是我的 Windows 登录名?

我模拟的帐户是域帐户,并且拥有文件共享的完整帐户。

请帮忙

补充:

我也尝试使用此代码,但它不起作用。我收到“拒绝访问”错误

string target = "'_blank'";
string script = "window.open(" + @"'file://fileshare/abc'" + "," + target + "," + "'status=no, menubar=yes, toolbar=yes');";
Page.ClientScript.RegisterStartupScript(this.GetType(), "someUniqueId", script, true);

【问题讨论】:

  • 您打算处理这个文件服务器端吗? (在这种情况下您应该使用 System.IO)或客户端(这是一种不寻常的场景,您将使用 JScript 和 ActiveX 对象,它们不会在所有机器上运行并且会产生很多安全警告)跨度>
  • 我要做的就是打开文件夹的窗口,这样他们就可以将文件添加到文件夹中
  • 即使您可以禁用所有安全性以允许您的 window.open 工作,它也不会打开资源管理器窗口,它只会浏览您指定的文件夹,因此您会看到一个列表浏览器中的文件。而已。您无法将文件复制到其中。
  • re:是的,JScript 正是您最初要求的解决方案(尽管我认为必须有更好的解决方案来解决您要解决的问题)并且您遇到了安全问题我警告过。要更进一步,您需要开始禁用安全性或让您的浏览器信任您的代码。

标签: c# asp.net impersonation


【解决方案1】:

您无法从 asp.net 工作进程启动 Explorer。 Explorer 是一个 GUI 应用程序,需要 WindowStation 才能显示。

当您说“它不起作用”时,您的意思是当您访问网页时资源管理器没有打开?

【讨论】:

  • 好的。这就说得通了。我尝试使用JS打开一个IE窗口,但也没有用。
  • @user1034458 - 您必须意识到您在浏览器中看到的内容与在服务器上发生的内容之间存在根本区别。它们是分开的东西。如果您在服务器上模拟用户,则不会在您的网络浏览器中执行任何操作。
  • 我要做的就是打开文件夹并允许用户将文件放入其中。
  • @user1034458 - 你不能。它只是不那样工作。 Web 浏览器仅从服务器获取 HTML 标记。他们不能直接访问服务器上的文件或文件夹。
  • @user1034458 - 你可以创建一个到服务器的文件共享,当然。但是你不能通过网页来做到这一点。您在网页中所做的事情发生在服务器上,而不是在您的本地客户端上。在大多数情况下,安全机制禁止 Web 浏览器访问本地文件。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-06
  • 1970-01-01
  • 2013-06-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多