设置:
对于 ASP.NET MVC 4 应用程序,我使用 Elmah.MVC 2.0.1 来记录错误。
我使用 NuGet 安装了 Elmah.MVC。它工作正常。
问题:
Elmah.MVC 包没有安装控制器或区域,所以我看不到通过 Authorize 属性应用安全性的明显方法,正如 ASP.NET MVC 所推荐的那样。
问题:
我只希望管理员角色的用户能够查看 Elmah 页面。
我该怎么做呢?
对于 ASP.NET MVC 4 应用程序,我使用 Elmah.MVC 2.0.1 来记录错误。
我使用 NuGet 安装了 Elmah.MVC。它工作正常。
Elmah.MVC 包没有安装控制器或区域,所以我看不到通过 Authorize 属性应用安全性的明显方法,正如 ASP.NET MVC 所推荐的那样。
我只希望管理员角色的用户能够查看 Elmah 页面。
我该怎么做呢?
哎哟!
刚刚找到答案;
Elmah MVC 2.0.1 NuGet 包将以下内容添加到<appSettings>
(在 web.config 中):
<add key="elmah.mvc.requiresAuthentication" value="false" />
<add key="elmah.mvc.allowedRoles" value="*" />
为了实现我想要的简单:
<add key="elmah.mvc.requiresAuthentication" value="true" />
<add key="elmah.mvc.allowedRoles" value="Admin" />
我相信你也可以像这样使用 URL 访问控制:
<location path="elmah.axd">
<system.web>
<httpHandlers>
<add verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" />
</httpHandlers>
<authorization>
<allow roles="YourRole" />
<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>