繁体   English   中英

.NET应用程序无需网络即可从网络运行

[英].NET application to run from network without UAC

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

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

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

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

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

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

请记住,虽然在这种情况下,将ClickOnce部署到网络共享是适当的,并且不需要管理特权才能进行安装,但它无法解决程序内部可能存在的任何管理问题。

Clickonce使您无需安装UAC即可运行。 它是一项出色的技术,是Chrome更新系统等的基础。 有两个选项:已安装,然后运行一次。 请参阅此链接: http : //msdn.microsoft.com/zh-cn/library/71baz9ah (v=vs.80) .aspx (.Net 2.0信息)

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

Google Chrome浏览器如何在下载后自动执行安装?

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

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

根据设计,从网络共享运行的每个代码都不会应用“完全信任”策略。 如果从具有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等)的策略。 这样,从网络共享中运行应用程序就不会有任何问题。 而且,如果您需要在不同的应用程序中共享相同的策略,则只需使用相同的证书对其进行签名。

您可以在此处找到关于ir的更好解释。 什么是.NET中的代码访问安全性

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM