DOBON.NET DOBON.NETプログラミング掲示板過去ログ

ASP.NET(4.0)で管理者権限動作

環境/言語:[Window Server 2008R2 Visuau Studio 2010 ASP.NET4.0 IIS7.5]
分類:[ASP.NET]

Windows Server2008R2Std.上のIISで、ASP.NETのWEBアプリを作成しています
そこで、イベントログに書き込む必要があるのですが、管理者権限が無いせい(だと思われるのですが)で、
イベントログに書き込むことが出来ません

一般的なC#アプリであれば、
app.manifest
というファイルに
<security>
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
<!-- UAC マニフェスト オプション
Windows のユーザー アカウント制御のレベルを変更するには、
requestedExecutionLevel ノードを以下のいずれかで置換します。

<requestedExecutionLevel level="asInvoker" uiAccess="false" />
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
<requestedExecutionLevel level="highestAvailable" uiAccess="false" />

requestedExecutionLevel ノードを指定すると、ファイルおよびレジストリの仮想化は無効になります。
旧バージョンとの互換性のためにファイルおよびレジストリの仮想化を
使用する場合は、requestedExecutionLevel ノードを削除します。
-->
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
</requestedPrivileges>
</security>
の項目の
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
とすればよいと言うことがわかったのですが

ASP.NETではどのファイルに記述をどのようにすれば良いのかわかりませんでした

同じようにASP.NETのアプリで管理者権限で動作させるにはどうしたらよいのでしょう
■No32418に返信(ラスカルさんの記事)
> イベントログに書き込む必要があるのですが、
レジストリへの書き込み権限が不足していると、
System.Security.SecurityException の例外を引き起こします。


> 一般的なC#アプリであれば、
> app.manifest
> というファイルに
同種のものとして、マスター構成ファイル や Web.Config といったものが
あるにはあるのですが…。
http://technet.microsoft.com/ja-jp/library/ee175752.aspx
http://www.atmarkit.co.jp/fdotnet/technology/idnfw11_10/idnfw11_10_04.html


> 同じようにASP.NETのアプリで管理者権限で動作させるにはどうしたらよいのでしょう
迂闊に『管理者』の権限を与えてはいけません。
Web の出入口となる場所ですから、最低限の権限のみにしておきましょう。


> イベントログに書き込むことが出来ません
イベントソースを事前に登録してみてはいかがでしょうか。

イベントログの作成は、レジストリを編集して登録するか、
もしくはインストーラーDLLを使用して行います。
http://support.microsoft.com/kb/329291/ja

それでも同様のエラーが出てしまう場合には、レジストリエディターで、
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog 配下の
エントリーに対するアクセス権限も確認してみて下さい。

なお ASP.NET の実行には、ASPNET / NetworkService / IUSR といった、
IIS アプリケーションのための固定アカウントが用いられています。ただし
Windows 認証の場合は接続したユーザーの認証アカウントとなります。
http://www.atmarkit.co.jp/fdotnet/technology/idnfw11_10/idnfw11_10_04.html
ありがとうございます

幸い同じサーバ内に、管理者権限で動作するアプリがあったので、
そちらから、インストーラーDLLと似たコードでイベントを作成してもらい、
後は、ASP.NETを動作させたらうまくいきました


■No32419に返信(魔界の仮面弁士さんの記事)
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板