ログインして共有フォルダにファイルをコピーすることにより、Webサイトからいくつかのファイルをダウンロードしようとするコンソールアプリケーションに取り組んでいます。
ここで私が作業しているドメインは、ファイルを保存する必要がある共有フォルダーのドメインとは異なります。
現在、実行から共有フォルダーを開き、ユーザー名とパスワードをWindows認証ダイアログに入力してからアプリケーションを実行することにより、この問題を手動で克服しています。
これが私が使っているコードです-
static public void Start()
{
try
{
serverpath = ConfigurationSettings.AppSettings["serverpath"];
if (flag == 0)
{
username = ConfigurationSettings.AppSettings["UserNameFN"];
password = ConfigurationSettings.AppSettings["PassWordFN"];
}
else
{
username = ConfigurationSettings.AppSettings["UserNameMFS"];
password = ConfigurationSettings.AppSettings["PassWordMFS"];
check = true;
}
string webUrl = "https://www.website.org/";
string formParams = string.Format("user={0}&password={1}", username, password);
WebRequest req = WebRequest.Create(webUrl);
req.ContentType = "application/x-www-form-urlencoded";
req.Method = "POST";
req.Proxy.Credentials = CredentialCache.DefaultCredentials;
byte[] bytes = Encoding.ASCII.GetBytes(formParams);
req.ContentLength = bytes.Length;
using (Stream os = req.GetRequestStream())
{
os.Write(bytes, 0, bytes.Length);
}
WebResponse resp = req.GetResponse();
cookieHeader = resp.Headers["Set-cookie"];
(ConfigurationSettings.AppSettings["UserNamePROD"], ConfigurationSettings.AppSettings["PassWordPROD"], ConfigurationSettings.AppSettings["DomainPROD"]);
Directory.CreateDirectory(serverpath + @"Log\");
Logging.Write_Line(DateTime.Now + " - File Transfer Started");
if ((!check) || (count == 0))
{
string[] filename = getFileNames.returnFileNames(cookieHeader)
}
}
上記のコードで
Directory.CreateDirectory(serverpath + @"Log\");
この行は例外をスローします。
自分のマシンからアプリケーションを実行しているときに、プログラムで共有の場所にログインするにはどうすればよいですか?
前もって感謝します :)