Zabezpieczanie Elmah w ASP.NET strona www
Mam problem z zabezpieczeniem ELMAH. Śledziłem Phila Haackera tutorial, z tą jedyną różnicą, że projekt demo jest aplikacją internetową, a mój projekt jest stroną internetową.
<add verb="POST,GET,HEAD" path="/admin/elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" />
<location path="admin">
<system.web>
<authorization>
<deny users="?"/>
</authorization>
</system.web>
</location>
Z wiodącym " / "otrzymuję odpowiedź, że" zasobu nie można znaleźć.", jeśli usunę wiodący " / " wszystko działa dobrze, z wyjątkiem uwierzytelniania można ominąć, dodając nazwę katalogu przed /admin / elmah.axd.
Na przykład bez wiodącej "/"
Www.mysite.com/admin/elmah.axd - uruchamia uwierzytelnianie
www.mysite.com/asdasdasd/admin/elmah.axd - nie uruchamia uwierzytelniania i wyświetla ELMAH
Jak mogę zapewnić bezpieczeństwo ELMAH, zachowując możliwość zdalnego przeglądania dziennika?
Dzięki.Uwaga dla innych:
Następujące odpowiedzi Alan poniżej skutkuje w następujący sposób.
Www.mysite.com/admin/elmah.axd -wyzwalacze uwierzytelnianie
www.mysite.com/admin/asdasdasd/elmah.axd - uruchamia uwierzytelnianie
www.mysite.com/asdasdasd/admin/elmah.axd -zasobu nie można znaleźć. (dokładnie to, czego chcieliśmy)
4 answers
Bawiłem się w sieci.config i mam następujące do pracy. Zasadniczo zamiast umieszczać elmah.axd HttpHandler w systemie ogólnym.www, dodaj go specjalnie w systemie.www Twojej lokalizacji ścieżki" admin".
<location path="admin">
<system.web>
<httpHandlers>
<add verb="POST,GET,HEAD" path="elmah.axd"
type="Elmah.ErrorLogPageFactory, Elmah" />
</httpHandlers>
<authorization>
<deny users="?"/>
</authorization>
</system.web>
</location>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-02-01 19:08:37
Jeśli używasz ASP.NET MVC, musisz mieć silnik routingu zignorować tę ścieżkę. Jeśli chcesz przenieść elmah do /admin / elmah.na przykład axd należy dodać następujące elementy do Global.asax.cs:
routes.IgnoreRoute("admin/elmah.axd/{*pathInfo}");
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-10-14 23:32:34
Po spędzeniu czasu na próbach, aby to zadziałało, łącząc różne porady z każdej odpowiedzi, opracowałem kompletne rozwiązanie, które powinno działać dla wszystkich smaków IIS.
Oto, co musi znaleźć się w każdej Twojej sieci.sekcje config:
<configuration>
<configSections>
<sectionGroup name="elmah">
<section name="security" requirePermission="false" type="Elmah.SecuritySectionHandler, Elmah" />
<section name="errorLog" requirePermission="false" type="Elmah.ErrorLogSectionHandler, Elmah" />
<section name="errorMail" requirePermission="false" type="Elmah.ErrorMailSectionHandler, Elmah" />
<section name="errorFilter" requirePermission="false" type="Elmah.ErrorFilterSectionHandler, Elmah" />
</sectionGroup>
</configSections>
<elmah>
<!-- set allowRemoteAccess="0" for extra security -->
<security allowRemoteAccess="1"/>
</elmah>
<system.web>
<httpModules>
<add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" />
<add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" />
<add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" />
</httpModules>
</system.web>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
<add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" preCondition="managedHandler" />
<add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" preCondition="managedHandler" />
<add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" preCondition="managedHandler" />
</modules>
</system.webServer>
<location path="admin">
<system.web>
<authorization>
<!--<allow users="Admin" /> -->
<deny users="?" />
</authorization>
<httpHandlers>
<add verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" />
</httpHandlers>
</system.web>
<system.webServer>
<handlers>
<add name="Elmah" path="elmah.axd" verb="POST,GET,HEAD" type="Elmah.ErrorLogPageFactory, Elmah" preCondition="integratedMode" />
</handlers>
</system.webServer>
</location>
</configuration>
I jeśli używasz Asp.Net MVC, add
routes.IgnoreRoute("admin/elmah.axd/{*pathInfo}");
W metodzie RegisterRoutes.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-06-07 16:56:27
W IIS 7.5 windows server 2008 znajduje się kolejna sekcja o nazwie system.webServer. Aby elmah zadziałał, trzeba było to dodać:
<system.webServer>
<handlers>
<add name="Elmah" verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" />
</handlers>
</system.webServer>
Próbowałem kilku wariacji, ale nie jestem w stanie użyć powyższego rozwiązania do zapobiegania / align = "left" / axd ' z pracy.
Wszelkie sugestie dotyczące działania powyższego rozwiązania dla IIS 7.x?
Dzięki.Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-08-12 12:59:08