- - PR -
ASP.Netのファイルサーバのファイルアクセス
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2005-12-20 21:07
はじめまして
現在、.Netにて開発を行っており ファイルサーバのファイルのアクセスが出来ず 困っています。 過去ログも参照しましたがWebサーバとファイルサーバが 異なる環境というのが余りなく、 今回開発している要件のようにファイルサーバの パスが画面入力でユーザが変更できるものが ありませんでしたので投稿しました。 やりたいこては、 1.クライアントからWebサーバに ログイン時に偽装し(Impersonate=trueで実現) ログイン者のアクセス権を持ってユーザ毎に 設定した(設定は動的)ファイルサーバに存在する ファイルの一覧を取得する。 これは、同時に処理を行うと重い等の理由で EXE化されています。 2.「1」で取得した情報を一覧表示し ファイルの削除・リネーム処理を行う。 3.設定したファイルサーバに DBの情報を元にフォルダ作成を行う。 です。 事例1−OK Webサーバのマシンで直接Localに接続し1〜3を行う。 (フォルダはローカルも別のマシンも可能) 事例2−OK Webサーバ上にファイル取得先のフォルダを設定し、クライアントからログイン 事例3−NG(もっとも普通のパターンです) Webサーバ以外のマシンにフォルダを設定し、クライアントからログイン すると以下のエラーが発生します。 (実際のPGでは、Directory.Existsでfalseになるためそこをコメントにして出しました) ------------------------------------------------------------------------------- 内容:System.UnauthorizedAccessException: パス "\\XXXXXX\FileGetTest" へのアクセスが拒否されました。 at System.IO.__Error.WinIOError(Int32 errorCode, String str) at System.IO.Directory.InternalGetFileDirectoryNames(String fullPath, String userPath, Boolean file) at System.IO.Directory.InternalGetFiles(String path, String userPath, String searchPattern) at System.IO.Directory.GetFiles(String path, String searchPattern) at GetFileInf.Class.Cls_GetFileInf_Common.GetFileInformation(Cls_DataBaseOperationTemplate clsDB, ArrayList aryOutput, String strPath, String strSrchPtn, String strRootPath) at GetFileInf.Class1.Main(String[] args) ------------------------------------------------------------------------------- ファイルサーバの設定したフォルダにはクライアントのユーザを 全てフルコントロールで追加してあり、エクスプローラからは ファイルの変更をすることは可能です。 どんなことでもいいのでアドバイスをよろしくお願いします。 [ネットワーク環境] ActiveDirectoryのドメインにクライアント、サーバとも 参加しています。 [サーバ環境] OS:Win2003Server |
|
投稿日時: 2005-12-21 07:27
この例外は、1.で起こるの?2.で起こるの?それとも3.で起こるの?
仮に1.で起こるとして、その実行ファイルは何時どのような方法で起動しているの?その実行ファイルの実行権限は何になっているの? _________________ 甕星 <mikahosi@abox9.so-net.ne.jp> http://blogs.msmvp.jp/mikahosi/ |
|
投稿日時: 2005-12-21 09:24
1,2,3すべて起こります。
1は、ASPのソースから直接EXEを起動しています。 偽装されたユーザでプロセスを起動するため CreateProcessAsUserを使用しています。 2,3は直接Directory.CreateDirectoryなどで 作成しています。 この際は、偽装などは行っていません。 以上、よろしくお願いします。 |
|
投稿日時: 2005-12-21 23:08
実行する EXE の Main で
AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal); と記述してもアクセスできませんか? |
|
投稿日時: 2005-12-22 10:15
うみゅ様
ご回答ありがとうございます。 テストしてみましたが、やはりアクセスを行うことは出来ませんでした。 エラーの内容は前回までと変わりませんでした。 |
1