【问题标题】:Securing ELMAH File保护 ELMAH 文件
【发布时间】:2010-05-25 15:26:00
【问题描述】:

我正在尝试仅允许特定登录访问 elmah.axd 文件,并且应拒绝所有其他登录。我已关注 Phil Haack 的 tutorial 来保护文件。

<httpHandlers>
            <remove verb="*" path="*.asmx"/>
            <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
            <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
            <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/>
            <add verb="POST,GET,HEAD" path="admin/elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" />
        </httpHandlers>

<location path="admin">
    <system.web>
        <authorization>
            <allow users="admin@testing.com"/>
            <deny users="*"/>
        </authorization>
    </system.web>
</location>

首先,我以 user@testing.com 身份登录并尝试访问 http://localhost:58961/admin/elmah.axd 文件,然后我正确地被重定向到 Login.aspx 页面。接下来,我以 admin@testing.com 身份登录,并能够访问位于 http://localhost:58961/admin/elmah.axd 的 elmah 文件。现在我再次以 user@testing.com 身份登录,现在我可以访问 emlah 文件了。这种行为的原因是什么?

【问题讨论】:

  • 您确定您在两次尝试之间注销。很多时候,打开的浏览器窗口不允许 cookie 过期。我将导航到虚假页面 junk.aspx 以验证哪个登录处于活动状态。

标签: c# asp.net elmah


【解决方案1】:

您的“admin@testing.com”帐户似乎仍然有一个有效的会话密钥。这可能来自浏览器窗口,或者来自 asp.net 处理身份验证的方式。

有时可能会出现这样的情况,即 asp.net 身份验证票证已过期,但 cookie 尚未过期(因为滑动过期)

【讨论】:

    猜你喜欢
    • 2012-10-16
    • 2010-11-17
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 2014-12-16
    • 1970-01-01
    • 2010-11-18
    • 1970-01-01
    相关资源
    最近更新 更多