.NET应用程序在没有UAC的情况下从网络运行

时间:2013-12-10 10:14:32

标签: c# .net

我们有一个.NET应用程序(C#,2.0),它放在网络共享上,并通过用户PC上的批处理文件执行。

现在用户可以在他们的PC上获得管理员访问权限,当UAC弹出窗口提示用户可以接受它并且应用程序运行正常时。

我们的IT团队已决定从本地PC中删除管理员访问权限。通过此更改,我们的应用程序将不再起作用。我们无法在所有PC上安装该应用程序,因为我们希望避免PC上的额外占用空间+我们缺少更新过程。

有没有选项可以在没有UAC弹出窗口的情况下从网络运行? Clickonon也适用于.NET 2.0应用程序吗?

5 个答案:

答案 0 :(得分:0)

Will Clickonce work for .NET 2.0 applications too? 是的,支持ClickOnce是Microsoft .NET Framework 2.0的一个组件,但是这不会解决您的管理问题,它只是创建自我更新的基于Windows的应用程序可以用最少的用户交互来安装和运行。

答案 1 :(得分:0)

根据MSDN ClickOnce应该与.NET 2.0一起使用

请注意,虽然在这种情况下ClickOnce部署到网络共享是合适的,并且不需要管理权限进行安装,但它不会解决您在程序中可能遇到的任何管理问题。

答案 2 :(得分:0)

Clickonce允许您在没有UAC和安装的情况下运行。它是一项很好的技术,是Chrome更新系统的基础。有两个选项:安装,运行一次。请看这个链接:http://msdn.microsoft.com/en-us/library/71baz9ah(v=vs.80).aspx(。Net 2.0 info)

这里有关于Chrome安装程序的一些很好的信息(包括奥马哈的东西)

How does Google Chrome manage to execute installation automatically after download?

答案 3 :(得分:0)

除非您需要.net程序的管理权限,否则您可以尝试:

  • 使用runas运行程序vom命令提示符。你需要一个密码。
  • 从您的程序中删除UAC限制并确保关键部分 你的程序是以足够的权利执行的。这可以通过使用来完成 Impersonatation。您必须提供用户/密码,但这将被编译 在代码中。

答案 4 :(得分:0)

按照设计,从网络共享运行的每个代码都不会应用完全信任策略。如果从具有IP地址(\ 192.168.0.1 \ SharedFolder \ Application.exe)而不是计算机名称(\ Server1 \ SharedFolder \ Application.exe)的网络共享中运行它,则会有不同的策略

要解决此类问题,您应该使用CAS(代码访问安全性)http://en.wikipedia.org/wiki/Code_Access_Security

总结一下,您可以使用证书对代码(应用程序,程序集等)进行签名。然后,您的IT支持团队可以在将运行代码的计算机中配置每个使用该证书签名的代码,具有一组具有一组特殊权限的策略(访问HTTP,SQL Server等)。这样,从网络共享运行应用程序就不会有任何问题。如果您需要在不同的应用程序中共享相同的策略,则只需使用相同的证书对其进行签名。

您可以在What is Code Access Security in .NET

找到更好的解释