代码之家  ›  专栏  ›  技术社区  ›  Eduardo Cobuci

Security和UAC for.NET

  •  1
  • Eduardo Cobuci  · 技术社区  · 15 年前

    我的WindowsForms应用程序需要访问Internet,但当我尝试打开WebRequest时,应用程序崩溃。我注意到,当我从一个简单的文件夹(例如我的文档)运行应用程序时,它是可以工作的,但是如果我从“程序文件”文件夹运行,它就不能工作。 我知道问题存在于UAC权限中,但我不明白为什么我不能在运行“程序文件”的应用程序中打开WebRequest。

    有没有任何方法可以从“程序文件”中打开WebResQuest而不需要UAC权限提升(使用清单)?

    2 回复  |  直到 12 年前
        1
  •  1
  •   Rich    12 年前

    是否尝试将任何内容保存到应用程序运行的本地文件夹?

    如果您的应用程序是从程序文件下的文件夹运行的,并且您试图写入它所在的目录,那么这可能会失败。Programfiles文件夹是需要UAC才能写入的地方之一(我想)。

        2
  •  1
  •   Badaro    15 年前

    用一个简单的命令行应用程序进行测试,它看起来工作正常。它从“程序文件”内部运行,UAC处于活动状态,我运行的是Vista SP2。

    WebRequest req = WebRequest.Create("http://www.google.com");
    using(WebResponse resp = req.GetResponse())
    {
        using(Stream str = resp.GetResponseStream())
        {
            using(StreamReader sr = new StreamReader(str))
            {
                string data = sr.ReadToEnd();
                Console.WriteLine("SUCCESS: " + data.Length + "bytes downloaded");
                Console.WriteLine("SAMPLE: " + data.Substring(0,100));
            }
        }
    }
    

    你能提供更多关于这个问题的细节吗?可能发布一些源代码?