我已将elmah.mvc包含在Asp.Net MVC应用程序中,用于记录异常和自定义错误日志。它完全按预期工作,我可以使用SQL Server查看ELMAH_Error表中的日志,也可以通过本地主机URL(http://localhost:20086/elmah)从Web界面查看日志。
我的问题是:如果可能,我如何通过网站界面查看我的日志,而不是" http://localhost:20086/elmah"。我希望能够在必要时从任何计算机查看记录信息。我已经实现了角色和身份验证,因此我应该能够访问正确的URL,使用适当的凭据登录,然后查看日志....对吗? 这可能吗?
答案 0 :(得分:3)
没问题。您可以使用ASP.NET身份验证来保护日志。基本上你想要这样的东西:
<location path="elmah.axd">
<system.web>
<httpHandlers>
<add verb="POST,GET,HEAD"
path="elmah.axd"
type="Elmah.ErrorLogPageFactory, Elmah" />
</httpHandlers>
<authorization>
<allow roles="admin" />
<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>
此ELMAH Tutorial中有更多详细信息。
您似乎正在使用Elmah.MVC软件包。使用此软件包,您还有另一种选择:
<add key="elmah.mvc.requiresAuthentication" value="true" />
<add key="elmah.mvc.allowedRoles" value="admin" />