ASP.NET C#Webアプリケーションは、jpg、png、docx、txtなどのさまざまなファイルをClientBinというフォルダーにアップロードします。Visual Studio 2010.NETIDEに付属しているVisualStudio2010.NETテストサーバーではすべて正常に動作します。
ただし、アプリケーションをIIS7サーバーに展開する場合は、アプリケーションのWebユーザーにファイルのアップロードを許可する必要があります。基本的にIIS7を使用してサーバーにログオンし、ClientBinというフォルダーのセキュリティプロパティを手動で変更します。このフォルダーには、最終的にjpg、png、docx、txtなどのコンテンツが含まれます。
---Webユーザーが正常にアップロードできるようにするための手動アプローチ---------------------------
Explorerでprojectfolder\ClientBinフォルダーを右クリックし、[プロパティ]を選択して、[セキュリティ]タブを選択します。「追加」をクリックして、適切なユーザーまたはグループを追加します。ASP.NETアカウントを強調表示し、目的のアクセスのチェックボックスをオンにします。---アップロードを正常に機能させるための手動アプローチ---------------------------
--アップロードしようとしたときにWebユーザーに例外エラーが発生するプログラムによるアプローチ------------------
String DirectoryPath = System.IO.Path.Combine(Server.MapPath("~/ClientBin/"));
DirectorySecurity specificDirectorySecurity = Directory.GetAccessControl(DirectoryPath);
specificDirectorySecurity.AddAccessRule(new FileSystemAccessRule("Users", FileSystemRights.Modify, AccessControlType.Allow));
specificDirectorySecurity.AddAccessRule(new FileSystemAccessRule("Administrators", FileSystemRights.Modify, AccessControlType.Allow));
specificDirectorySecurity.AddAccessRule(new FileSystemAccessRule("SYSTEM", FileSystemRights.Modify, AccessControlType.Allow));
Directory.SetAccessControl(DirectoryPath, specificDirectorySecurity);
--アップロードしようとしたときにWebユーザーに例外エラーが発生するプログラムによるアプローチ------------------
別のオンライン投稿では、web.configに次のように入力して問題を解決することを提案しています。
----プログラムによるアプローチの問題を解決する可能性のあるXML構成--------
アイデンティティimpersonate="true" userName = "ComputerName \ Administrator" password = "don"
----プログラムによるアプローチの問題を解決する可能性のあるXML構成--------
ただし、IDを真に偽装すると、セキュリティの問題が心配になります。
これを行うための最も安全で最も自動化された(プログラムによるソリューションを意味する可能性がある)方法は何ですか?
ありがとう、
新入社員