2017-04-06 85 views
0

我这是用来下载一些应用程序,并运行此WPF应用程序这些应用程序的WPF应用程序。运行(可以认为是类似“Windows应用商店的应用程序”的)如何限制.exe文件从C#WPF应用程序只

现在我需要限制从我的WPF应用程序下载到只从我的WPF应用程序运行其他应用程序的EXE文件。如果用户试图从文件系统运行该exe文件,它应该会提示一个错误消息说明受限访问。

怎样才能锁定的exe仅从我的应用程序从我的WPF应用程序下载后运行。 如何在C#WPF应用程序中实现此目的?

+0

如果你需要一个有点“天真”的保护,那么是的,有什么建议尤里是OK(只考虑使用一个散列码,而不是一个普通的字符串,使事情稍微有点难度了......)。如果你需要更多,然后签署你的主机程序集,为每个“客户端”获取父进程并检查其公钥。 –

+0

Sry基因我是新来的.NET开发,我没有得到什么ü后表示,“如果u需要更多......” – djkp

+0

我的意思是,如果你想成为(多一点),确保它们不运行这些使用正确命令行的应用程序只需使用dotPeek检查程序集(“他们”只需拆解并查看所需的_secret_参数)。如果这是你自己的过程,验证自己签署的装配父母,然后绕过这个限制是困难的(它总是可能的,但不太容易,它可能会排除_casual饼干_) –

回答

1

你有存取权限的EXE文件的源代码?因此,您可以添加某种登录到下载的exe。

static void Main(string[] args) 
{ 
    if (args[0] != "password") 
    { 
     Environment.Exit(0); 
    } 
} 

如果您没有访问下载的exes的源代码,您可以使用此解决方案。这确实需要让应用程序始终运行。 bool notepadopened = false;

while (true) 
{ 
    foreach (Process p in Process.GetProcessesByName("notepad")) 
    { 
      if (!notepadopened && p.ProcessName.ToString() == "notepad") 
      { 
       p.Kill(); 
      } 
    } 
    Thread.Sleep(1000); 
} 
+0

是的,我有权访问exe的源代码。 – djkp

+0

好,那么你可以传递密码作为命令行参数,并在启动exe时检查它。 –

+0

如何检查密码并停止exe启动。 – djkp

相关问题