用户权限问题

本文关键字:问题 权限 用户 | 更新日期: 2023-09-27 17:52:52

我正在使用Visual Studio c#从我正在使用的本地搜索工具中解析文件位置的XML文档。具体来说,我使用c#来查询用户是否有权访问某些文件,并隐藏那些用户无权访问的文件。我似乎有文件,应该返回访问是真的,但因为不是所有的文件都是本地的(IE有些是没有专有名称的web文件),它不显示访问文件,它应该显示访问权限。现在的错误是由使用.aspx?i=573的url引起的,是否有一个解决方案,或者我将不得不删除所有这些文件…=/

编辑:更多信息…

我现在正在使用....

foreach (XmlNode xn in nodeList)
            {
                string url = xn.InnerText;
                //Label1.Text = url;
                try
                { using (FileStream fs = File.OpenRead(url)) {  }
                }
                catch { i++; Label2.Text = i.ToString(); Label1.Text = url; }

            }

问题是,当它试图打开像….aspx?i=573,它把它们放到捕获堆栈中。如果我试图打开文件,但文件打开只是很好。(IE我有读访问权限,但因为文件类型或'?

如果在文件名中=',则会将其丢入不可读堆栈。

我想通过url或本地访问显示所有可读的内容,否则它将为我捕获错误文件。

用户权限问题

我不确定您到底想要做什么,但是如果您只想要URI的路径,您可以轻松地像这样删除查询字符串部分:

        Uri baseUri = new Uri("http://www.domain.com/");
        Uri myUri = new Uri(baseUri, "home/default.aspx?i=573");
        Console.WriteLine(myUri.AbsolutePath); // ie "home/default.aspx"

你不能有?

或者,您可以直接替换'?

如果要将URL转换为文件名,则使用其他字符。

实际上,现在考虑一下,您可以检查一下您的"文档"是否为URI,如果不是,则尝试在文件系统上打开该文件。听起来好像您正在尝试打开提供的任何和所有内容,但是对数据执行一些检查不会有什么坏处。

private static bool IsLocalPath(string p)
{
  return new Uri(p).IsFile;
}

这是来自检查路径输入是URL还是本地文件,它看起来就像你正在寻找的

FileStream读写本地文件。"?"不是本地文件名的有效字符。

看起来你想打开本地和远程文件。如果这是你想做的,你应该使用适当的方法来下载每一种类型-即HTTP你的WebRequest或相关的类。

注意:如果你说:当url是"…",回答起来会容易得多。File.OpenRead(url)异常失败,消息"…".