1

我在我的 Sitecore 解决方案中添加了 Elmah 工具,实际上我在这里做了 http://newguid.net/sitecore/2011/using-elmah-for-error-logging-within-sitecore/ 我启用的只有一个卷是allowRemoteAccess属性,

<elmah>
<security allowRemoteAccess="1" />  
</elmah>

现在日志可用于任何地方的每个人,但我只想为登录(授权)到 sitecore 的用户(sitecore 用户)显示它

我该如何管理它?

谢谢。

4

2 回答 2

1

不知道现在Elmah内置了什么,但我曾经这样做:

<location path="elmah.axd">
    <system.web>
        <authorization>
            <allow roles="SITECORE_USERS"/> <!---put your role here-->
            <deny users="*"/> 
        </authorization>
    </system.web>
</location>

保护 ASP.NET 网站中的 Elmah RSS 源

于 2013-01-10T14:52:24.210 回答
1

在研究了 elmah 源代码和这篇文章http://dotnetslackers.com/articles/aspnet/Securing-ELMAH-with-Independent-HTTP-Authentication.aspx后,我找到了解决方案。用户可以为我接下来做的自定义 IHttpModule 实现 IRequestAuthorizationHandler:

 public class SitecoreAuthModule :IHttpModule, IRequestAuthorizationHandler
{
    public bool Authorize(HttpContext context)
    {
        return SC.Context.User.IsAdministrator;
    }

    public void Init(HttpApplication context)
    {
        context.AuthenticateRequest += new EventHandler(ContextAuthenticateRequest); ;
    }

    void ContextAuthenticateRequest(object sender, EventArgs e)
    {
        var context = sender as HttpApplication;
        if (context.Request.Path.IndexOf("elmah.axd",
            StringComparison.InvariantCultureIgnoreCase) < 0)
            return;
    }

    public void Dispose()
    {

    }
}
于 2013-01-13T13:42:49.953 回答