2010-05-25 108 views
1

我想允許訪問elmah.axd文件只有一個perticular登錄和所有其他人應該被拒絕。我遵循菲爾哈克的tutorial來保護文件。保護ELMAH文件

<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="[email protected]"/> 
      <deny users="*"/> 
     </authorization> 
    </system.web> 
</location> 

首先我登錄的[email protected],並試圖訪問http://localhost:58961/admin/elmah.axd文件,我理所當然地被重定向到Login.aspx頁面。接下來,我以[email protected]的身份登錄,並能夠訪問位於http://localhost:58961/admin/elmah.axd的elmah文件。現在我再次登錄爲[email protected],我現在可以訪問emlah文件。這種行爲的原因是什麼?

+0

你確定你的兩次嘗試之間註銷。很多時候,打開的瀏覽器窗口不允許cookie過期。我會導航到假頁面junk.aspx來驗證哪個登錄處於活動狀態。 – ggonsalv 2010-05-25 16:01:36

回答

0

看起來您仍然擁有您的「[email protected]」帳戶的有效會話密鑰。這可能來自瀏覽器窗口,或者來自asp.net如何處理認證。

某個時候有可能在asp.net身份驗證票證是市場失效的情況下,但是Cookie尚未(因爲到期滑動)