如何通过NetworkCredential(用户名,密码)更改自己的根服务器中的目录以进行访问

时间:2017-08-11 11:59:27

标签: c# .htaccess networkcredentials

我收到错误401,非自动访问

来自Webclient的错误消息:

  

远程服务器返回错误:(401)未经授权。

如果我想通过c#webclient类访问目录。 问题:目录faild的授权,连接工作,目录中的文件列表也已经显示。

我已经将目录保存在我的提供商的浏览器界面上。 我还测试了.htaccess以使用用户名和密码保护此目录,但没有成功。

也许我做错了什么,但代码必须没问题,因为如果我添加 选项+索引 仅限于我已经提到的.htaccess来获取此目录中的文件列表。但是,如果我想下载这些文件,则会发生上述错误(401未经授权的访问)。

您是否有任何想法如何使用用户名和密码通过C#webclient从此目录下载文件来更改对我的目录的访问权限?

我的代码:

Client.UseDefaultCredentials = true;
Client.Credentials = new NetworkCredential("user", "pw");

Directory.CreateDirectory(Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + Path.DirectorySeparatorChar + "DownloadArchive");

        HttpWebRequest request = (HttpWebRequest)WebRequest.Create("url/directory");
        using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
        {
            using (StreamReader reader = new StreamReader(response.GetResponseStream()))
            {
                string html = reader.ReadToEnd();
                Regex regex = new Regex(GetDirectoryListingRegexForUrl("url/directory"));
                MatchCollection matches = regex.Matches(html);
                if (matches.Count > 0)
                {
                    foreach (Match match in matches)
                    {
                        if (match.Success)
                        {
                            Client.DownloadFile("url/directory" + match.Groups["name"], 
Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\" + "DownloadArchive" + Path.DirectorySeparatorChar + 
match.Groups["name"]);
                            writer.Log("File " + match.Groups["name"] + " downloaded into " + 
Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + Path.DirectorySeparatorChar + "DownloadArchive");
                        }
                    }
                }
            }
        }

.htaccess,用于读取目录中的所有文件名:

Options +Indexes

.htaccess,我尝试添加用户名和密码:

AuthType Basic
AuthUserFile /root/.passwd
AuthName "HTACCESS TEST"
order deny,allow
allow from all
require valid-user
目录root中的

.passwd是通过root服务器上的putty用htpasswd程序创建的:

UserName:{SHA}...........................

0 个答案:

没有答案