0

Asp.net アプリケーションで共有フォルダー (ftp の場所) からファイルにアクセスしようとしています。Visual Studio から正常に動作しています。IIS 7 で同じものを展開すると、次のエラーが発生します

「ログオン失敗: ユーザーは、このコンピューターで要求されたログオンの種類を許可されていません。」

スタックトレース:

[IOException: ログオン エラー: ユーザーは、このコンピューターで要求されたログオンの種類を許可されていません。]
System.IO.__Error.WinIOError(Int32 errorCode, String MaybeFullPath) +9723522 System.IO.FileSystemEnumerableIterator 1.CommonInit() +245 System.IO.FileSystemEnumerableIterator1..ctor(String path, String originalUserPath, String searchPattern, SearchOption searchOption, SearchResultHandler`1 resultHandler) +556
System.IO. DirectoryInfo.InternalGetFiles(String searchPattern, SearchOption searchOption) +64 System.IO.DirectoryInfo.GetFiles() +14

……

アプリケーション プールが NETWORKSERVICE モードで実行されています IIS のどのユーザーに、このフォルダへのアクセス許可を与える必要がありますか? IUSER または NT AUTHORITY\NETWORK SERVICE ですか? IIS で現在実行中のユーザーを特定するにはどうすればよいですか?

4

3 に答える 3

2

接続が拒否される理由は、IIS サービスを実行しているユーザーによるそのサービスへのアクセスを許可しないグループ ポリシーである可能性があります。

これらのシステム ユーザーにネットワーク リソースへのアクセス許可を与えたくありません。他のコンピュータも接続できる可能性があります。

代わりに、プログラムをゲストアカウントまたは作成した別のアカウントで認証し、適切な権限を付与してください。

より安全なアプローチになると思います。

于 2013-03-06T21:15:19.930 に答える
0

デバッグするには -例外の瞬間にEnvironment.UserNameを見てください。リクエストを開始したユーザーまたは匿名ユーザーのいずれかになります。

修正するには: ローカル ファイルの場合 - アクセス許可の付与は問題ない可能性があります。リモートでユーザーの偽装アカウントを使用している場合 - すでに偽装されているアカウントを使用してリモート リソースにアクセスすることはできないため (「NTLM 1 ホップ」)、リモート マシンに対するアクセス許可を持つ別のアカウントで偽装する必要があります。

注: ファイルへのアクセスを許可するときは、セキュリティ要件を確認してください。

于 2013-03-06T21:36:30.287 に答える
0

ネットワーク経由でのみアクセスできるコンピューターに対話的にログオンしようとしている可能性があります。また、その逆の場合もあります。

ログオン場所を変更します。必要に応じて、ローカル (対話型) またはリモート (ネットワーク経由) でログオンを試みます。ローカルまたはリモートでログオンできるように、セキュリティ データベースの変更をコンピュータ セキュリティの管理者に依頼することをお勧めします。

于 2013-03-06T21:13:23.517 に答える