明らかに、MOSS は Windows 認証 (kerberos) と偽装を使用するように構成されています。moss にログインしている現在のユーザーを偽装する必要がない場合は、偽装をオフにします (web.config にあります)。ログ ファイルは、moss インストールのアプリケーション プールを実行しているユーザーによって作成および書き込まれることがわかります。
偽装を使用する必要がある場合、別の解決策は、ログ ディレクトリ (およびログ ディレクトリのみ) にファイルを作成および書き込む権限を全員に与えることです。ただし、これは必ずしも最良のアイデアではありません。ログを読む必要がある人以外のすべての人の読み取り許可を禁止できますが、ディスクをいっぱいにして DoS しようとする人を心配する必要があります。
3 番目の選択肢は、ログインする前に ID を切り替えることです。このようなものがうまくいくかもしれません:
var wic = WindowsIdentity.Impersonate(IntPtr.Zero); // "revert to self"
/* LOG GOES HERE K */
wic.Undo(); // return to impersonation
大きな警告: 私はこのことを自分で学んでいるので、上記のコードはまったく機能しない可能性があります。その場合、ログ書き込み ID にログインするために p/invoke する必要がないため、それは素晴らしいことです。つまり、そのユーザーを作成して、そのパスワードをアプリケーションにクリアテキストで保存する必要もありません。
この古いスキーターはどこにいるのかしら?Windows のセキュリティには、かなりの労力が必要です。私はちょうど今、バーを始めたばかりです...