2012-12-04 6 views
16

私はelmahをasp.net mvc 4アプリケーションに追加しました。 ロギングが機能していますが、現在はセキュリティを設定しようとしていますが、elmahは設定を取得しておらず、ログはすべてのユーザーに表示されたままです。Windowsの統合セキュリティでASP.Net MVC 4でElmahを保護する方法:Elmahが設定を無視する

これはイントラネットアプリケーションであり、Windowsと統合された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> 

とも

を拒否するように私のautorisationの設定を設定することにより、完全なロックダウンしようとしています
<authorization> 
<deny users="?" /> 
</authorization> 

ログは誰にでも開いたままです。

問題がその場所にある可能性があります。私はelmahの場所を変更していません。既定の場所(http://server/myapp/elmah)からアクセスします。

答えて

28

Elmah.Mvcを使用する場合は、きめ細かなセキュリティ設定が適用されます。 elmahページを簡単に保護できるのは、たとえばAdminグループのログインユーザーだけです。

Elmah.Mvcはでログインする必要がユーザーにスイッチelmah.mvc.requiresAuthenticationをしている興味の<appSettings>

<appSettings> 
    <!-- ELMAH configuration. Admin page only available for logged in users in 
     the Admin role. --> 
    <add key="elmah.mvc.disableHandler" value="false" /> 
    <add key="elmah.mvc.disableHandleErrorFilter" value="false" /> 
    <add key="elmah.mvc.requiresAuthentication" value="true" /> 
    <add key="elmah.mvc.allowedRoles" value="Admin" /> 
    <add key="elmah.mvc.route" value="elmah" /> 
</appSettings> 

キーで次の項目をサポートしています。そして、ユーザーがでなければならない役割を指定elmah.mvc.allowedRoles

nugetからElmah.Mvcをインストールすることができます。

コマンドウィンドウを開き、次のコマンドを入力します:

+0

で、「どのようにASP.NET MVCを使用したイントラネットサイトを作成するために、」私は試してみることを与えるでしょう。これらの設定は、すでに設定した設定に加えて、または設定したものです – Twisted

+1

Elmah.Mvcをnuget経由でインストールした場合、上記の設定が自動的にweb.configに追加されます。上記の設定は、あなたが既に設定したものの代わりになります。 –

+0

謝辞 – Twisted

3

は、上記の答えは、私はWindows認証を使用するときの役割を決定する方法を見つけたら、素晴らしい仕事<user>については

cmd /k net user <user> /Domain 

を、あなたの代わりにユーザー名。このコマンドはあなたが所属するグループを一覧表示します。

指示がどこから来た私はelmah.mvcインストールされているhttp://msdn.microsoft.com/en-us/library/gg703322(VS.98).aspx

関連する問題