質問

私はASP.NET 願います。基本的には、配送プロセスです:

  • Nantビルドの作成zipファイルは、開発者のコンピュータのアプリケーションファイルなしにSVNフォルダを無駄なファイルです。このファイルをお届けしまNantます。
  • Zipやnantファイルがコピーされるお客様のコンピュータ
  • のNantスクリプトに置き換え、現在のwebサイトのファイルのファイルに含まれるzipファイルです。

私の問題は、こうして、不正アクセスエラーが発生しているウェブサイトを開く.このファイルが必要となりアクセス権のセットを、ユーザー"IIS_WPG".

思っていたのを変える力IIS設定しています手動で変更の権限の各ファイルです。各時に交換するファイルにアクセス権を除いれらのオプションを設定します。

いての質問:

  • 変更することはできまファイルアクセス権とNant?どのようにしていきますか?
  • でこの問題を回避するためには?デベロッパーがないユーザーのパソコンにデータ)
役に立ちましたか?

解決

を実行する必要がありますのCACLSプログラムwindowsのアクセス権を付与ファイルやフォルダの中に別のフォルダを作からNant、これを実行する事ができます。にEXEC。

お試しタグブロックのように:

<exec program="cacls">
    <arg value="*" />
    <arg value="/G IIS_WPG:F" />
</exec>

他のヒント

@Jeffツ 痛...お送り頂いたご提案が最適なソリューションを提供すが、パラメータ...危険:).

にdevコンピュータ僕はログイン管理者として、またご提案cmd.

  • で置換のアクセス権の設定のためにのみ設定義されているもののコマンドで、コマンドにアクセスファイルの結果、"アクセスを否定"でも私の管理者ユーザー)
  • そのC:\WINDOWS\ディレクトリを呼んだときのコマンドからのwwwrootフォルダにまとめた。:)

これをきっかけに、日試験によって、右コマンド:

cacls [full folder path] /T /E /G IIS_WPG:F
  • /T:適用され特定のフォルダとフォルダのサブフォルダ
  • /E: 編集 のACLの代わりに 交換 で:)

しまいました書面を自社内外の識者をお招きしてもかなり真っ直ぐにコード:

[TaskName("addusertodir")]
public class AddUserToDirectorySecurity : Task
{
    [TaskAttribute("dir", Required=true)]
    public string DirPath { get; set; }

    [TaskAttribute("user", Required=true)]
    public string UserName { get; set; }

    protected override void ExecuteTask()
    {
        FileSystemAccessRule theRule1 = new FileSystemAccessRule(UserName, FileSystemRights.ListDirectory, AccessControlType.Allow);
        FileSystemAccessRule theRule2 = new FileSystemAccessRule(UserName, FileSystemRights.ReadAndExecute, AccessControlType.Allow);
        FileSystemAccessRule theRule3 = new FileSystemAccessRule(UserName, FileSystemRights.Read, AccessControlType.Allow);

        DirectorySecurity theDirSecurity = new DirectorySecurity();
        theDirSecurity.AddAccessRule(theRule1);
        theDirSecurity.AddAccessRule(theRule2);
        theDirSecurity.AddAccessRule(theRule3);
        Directory.SetAccessControl(DirPath, theDirSecurity);
    }
}

そのあまり書けnantるスクリプト負荷、カスタムタスクを実行す:

<loadtasks>
    <fileset>
        <include name="MyTask.dll"/>
    </fileset>
</loadtasks>

<addusertodir dir="MyDir" user="IIS_WPG"/>

明らかに、この変更はお一定のルールはあなたのparameterizeこのタスクの場合です。てこの利用execタスクでお問い合わせ頂ければ、ビットに制御権れが発生していることも、今回適用されます。

CACLSが推奨されていません。こちらのバージョンを使用するICACLSの交換できます。

ということかを示しています.:

  • のルートフォルダの設置"c:\inetpub\wwwroot"で保管されNANT変数 ${paths.myprogram.inetpub}
  • フォルダしたい文字コード指定を可能という"遊び"で保存され ${upload.foldername}
  • のユーザーしたいオブジェクトには"IIS_UPLOAD_USER"、保存に ${iis.upload.user}
  • の許可レベルをしたいのは"M"、"変更"パーミッション、収納 ${iis.user.permissionlevel}

これらの前提、私たちに課せられた仕事はす:

<exec program="icacls">
    <arg value="${path::combine(paths.myprogram.inetpub, upload.foldername)}" />
    <arg value="/grant" />
    <arg value="${iis.upload.user}:${iis.user.permissionlevel}" />
</exec>

武器agiは、dexで下がらないboxerぐ!

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top