asp.net mvc 4 アプリケーションに elmah を追加しました。ログは機能しており、セキュリティを構成しようとしていますが、elmah が設定を取得しておらず、ログはすべてのユーザーに表示されたままです。
これはイントラネット アプリであるため、Windows 統合セキュリティを使用しています。domain\log_readers 広告グループのメンバーのみがログを読み取れるようにアクセスを制限しようとしています。
ここでセットアップ ガイドを読みました: http://code.google.com/p/elmah/wiki/SecuringErrorLogPagesまた、SO やその他のフォーラムに関するいくつかの投稿を読み、roleManager と WindowsRoleProvider の構成を追加しました。 、すべて無駄に。
これが私のweb.configのelmah部分です:
<elmah>
<!--
See http://code.google.com/p/elmah/wiki/SecuringErrorLogPages for
more information on remote access and securing ELMAH.
-->
<security allowRemoteAccess="true" />
<errorLog type="Elmah.XmlFileErrorLog, Elmah" logPath="~/Logs" />
</elmah>
<location path="elmah.axd" inheritInChildApplications="false">
<system.web>
<authentication mode="Windows" />
<roleManager defaultProvider="WindowsProvider"
enabled="true" cacheRolesInCookie="false">
<providers>
<add
name="WindowsProvider"
type="System.Web.Security.WindowsTokenRoleProvider" />
</providers>
</roleManager>
<httpHandlers>
<add verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" />
</httpHandlers>
<!--
See http://code.google.com/p/elmah/wiki/SecuringErrorLogPages for
more information on using ASP.NET authorization securing ELMAH.
-->
<authorization>
<allow roles="domain\log_readers"/>
<deny users="*" />
</authorization>
</system.web>
<system.webServer>
<handlers>
<add name="ELMAH" verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" preCondition="integratedMode" />
</handlers>
</system.webServer>
</location>
自動化設定を全員を拒否するように設定して、完全なロックダウンも試みました
<authorization>
<deny users="*" />
</authorization>
そしてまた
<authorization>
<deny users="?" />
</authorization>
ログは誰にでも公開されたままです。
問題は場所にあるのではないかと思います。エルマの場所に変更を加えていません。デフォルトの場所からアクセスされます ( http://server/myapp/elmah )