2010-04-21 21 views
17

Mein Ereignisprotokoll mit dieser Nachricht überschwemmt wird:Die Formularauthentifizierung ist für die Anforderung fehlgeschlagen. Grund: Das Ticket geliefert ist abgelaufen

Formularauthentifizierung für die Anforderung ist fehlgeschlagen. Grund: Das Ticket ist abgelaufen.

Ich denke, das passiert, wenn Menschen Timeout statt Abmelden.

Zunächst einmal ist dies kein Fehler, es ist Type: Information

ich diese Informationen nicht wollen, wie verhindere ich ASP.NET davon Protokollierung?

Meine Anwendung ist nicht web-farmed und verwendet einen statischen Maschinenschlüssel.

+1

Gute Antwort von Aristos, aber bevor ich das blockiere, würde ich ein wenig Nachforschungen anstellen, um sicherzustellen, dass das Ticket nicht auf irgendeine nicht normale Weise abläuft. Bestimmte Situationen mit automatisch generierten Maschinenschlüsseln (die für die Verschlüsselung von Authentifizierungstickets verwendet werden) können Probleme verursachen: siehe http://msdn.microsoft.com/en-us/library/ms998288.aspx – UpTheCreek

+0

@Sosh stimme ich völlig zu - tatsächlich Ich muss sagen, dass ich alle meine Fehler aufspüre und aufzeichne und niemals einen Fehler/Informationen verberge - Auch ich mag es zu bemerken, dass selbst wenn ich zu viele Benutzer auf 3 verschiedenen Seiten habe, ich diesen Fehler nie gesehen habe. Also ist es vielleicht ein Hackerangriff und vielleicht ist es notwendig, die IP zu finden, die kommt oder was auch immer, um sie zu blockieren. – Aristos

+0

Das gleiche Problem mit etwas anderen gewünschten Ergebnissen erscheint auch als die Frage [ASP.NET-Formularauthentifizierung fehlgeschlagen für die Anforderung. Grund: Das angegebene Ticket ist abgelaufen] (http://stackoverflow.com/questions/5266578/asp-net-forms-authentication-failed-for-the-request-reason-the-ticket-supplied) und [Error 4005 Forms] Authentifizierung fehlgeschlagen - Ticket geliefert ist abgelaufen] (http://stackoverflow.com/questions/284709/error-4005-forms-authentication-failed-ticket-supplied-has-expired?rq=1) –

Antwort

16

Hier ist die Lösung:

<?xml version="1.0"?> 
<configuration> 
    <system.web> 
     <healthMonitoring> 
     <rules> 
      <remove name="Failure Audits Default" /> 
     </rules> 
     </healthMonitoring> 
    </system.web> 
</configuration> 

Beachten Sie, dass dies die Protokollierung verhindern alle System.Web.Management.WebFailureAuditEvent Ereignisse aus, die das Ereignis Bereich 4005-4011 abdeckt. Es gibt wahrscheinlich eine Möglichkeit, 4005 zu entfernen, aber diese Lösung ist gut genug für mich.

Diese sind die Links, die mir geholfen:

+1

+1 Ich bin versucht zu lösche meine Antwort, um deine Antwort noch besser aussehen zu lassen, aber umm .. nein. ;-) –

+1

@Max endlich ja das ist eine Möglichkeit, aber du löschst und entfernst alle Ereignisse auf diese Weise und nicht nur die, nach der du fragst. – Aristos

+0

@Aristos: Nicht alle Ereignisse, nur der Bereich 4005-4011, die alle mit Authentifizierungs-/Autorisierungsfehlern zusammenhängen. Es gibt eine Möglichkeit, den 4006-4011-Bereich mit der Konfiguration wiederherzustellen. Ich verstehe, dass dies nicht die genaue Antwort ist, die ich suchte, aber es zeigt in die richtige Richtung, die Konfiguration ist. –

9

Hinzufügen zu Max Toro-Lösung und für die Neugierigen, scheint dies der Weg zu sein, eine Rück 4006 hinzufügen würde zu 4011:

<healthMonitoring enabled="true"> 

    <providers> 
    <add name="EventLogProvider" type="System.Web.Management.EventLogWebEventProvider,System.Web,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a"/> 
    </providers> 

    <eventMappings> 
    <!-- Event Mappings for 0-4004 and 4006 to infinite, skipping 4005, see last attribute of these entries --> 
    <add name="Failure Audits 1" type="System.Web.Management.WebFailureAuditEvent,System.Web,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" startEventCode="0" endEventCode="4004"/> 
    <add name="Failure Audits 2" type="System.Web.Management.WebFailureAuditEvent,System.Web,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" startEventCode="4006" endEventCode="2147483647"/> 
    </eventMappings> 

    <rules> 
    <!-- REMOVE ITEMS NOTED BY MAX --> 
    <remove name="Failure Audits Default"/>  
    <!-- ADD Back 4006 to 4011 with these two entries, skipping over 4005 --> 
    <add name="Failure Audits Default 1" eventName="Failure Audits 1" provider="EventLogProvider" profile="Default" minInstances="1" maxLimit="Infinite" minInterval="00:01:00" custom=""/> 
    <add name="Failure Audits Default 2" eventName="Failure Audits 2" provider="EventLogProvider" profile="Default" minInstances="1" maxLimit="Infinite" minInterval="00:01:00" custom=""/> 
    </rules> 

</healthMonitoring> 

Scheint wor k für mich.

Verwandte Themen