WebFailureAuditEvent 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
提供關於安全性失敗的資訊。
public ref class WebFailureAuditEvent : System::Web::Management::WebAuditEvent
public class WebFailureAuditEvent : System.Web.Management.WebAuditEvent
type WebFailureAuditEvent = class
inherit WebAuditEvent
Public Class WebFailureAuditEvent
Inherits WebAuditEvent
- 繼承
- 衍生
範例
下列程式碼範例示範如何衍生自 類別, WebFailureAuditEvent 以建立自訂稽核事件。
using System;
using System.Text;
using System.Web;
using System.Web.Management;
namespace SamplesAspNet
{
// Implements a custom WebFailureAuditEvent class.
public class SampleWebFailureAuditEvent :
System.Web.Management.WebFailureAuditEvent
{
private string customCreatedMsg, customRaisedMsg;
// Invoked in case of events identified only by their event code.
public SampleWebFailureAuditEvent(string msg, object eventSource,
int eventCode):
base(msg, eventSource, eventCode)
{
// Perform custom initialization.
customCreatedMsg =
string.Format("Event created at: {0}",
DateTime.Now.TimeOfDay.ToString());
}
// Invoked in case of events identified by their event code and
// event detailed code.
public SampleWebFailureAuditEvent(string msg, object eventSource,
int eventCode, int detailedCode):
base(msg, eventSource, eventCode, detailedCode)
{
// Perform custom initialization.
customCreatedMsg =
string.Format("Event created at: {0}",
DateTime.Now.TimeOfDay.ToString());
}
// Raises the SampleWebFailureAuditEvent.
public override void Raise()
{
// Perform custom processing.
customRaisedMsg =
string.Format("Event raised at: {0}",
DateTime.Now.TimeOfDay.ToString());
// Raise the event.
WebBaseEvent.Raise(this);
}
// Obtains the current thread information.
public WebRequestInformation GetRequestInformation()
{
// No customization is allowed.
return RequestInformation;
}
//Formats Web request event information.
//This method is invoked indirectly by the provider
//using one of the overloaded ToString methods.
public override void FormatCustomEventDetails(WebEventFormatter formatter)
{
base.FormatCustomEventDetails(formatter);
// Add custom data.
formatter.AppendLine("");
formatter.IndentationLevel += 1;
formatter.AppendLine(
"******** SampleWebFailureAuditEvent Start ********");
formatter.AppendLine(string.Format("Request path: {0}",
RequestInformation.RequestPath));
formatter.AppendLine(string.Format("Request Url: {0}",
RequestInformation.RequestUrl));
// Display custom event timing.
formatter.AppendLine(customCreatedMsg);
formatter.AppendLine(customRaisedMsg);
formatter.AppendLine(
"******** SampleWebFailureAuditEvent End ********");
formatter.IndentationLevel -= 1;
}
}
}
Imports System.Text
Imports System.Web
Imports System.Web.Management
' Implements a custom WebFailureAuditEvent class.
Public Class SampleWebFailureAuditEvent
Inherits System.Web.Management.WebFailureAuditEvent
Private customCreatedMsg, customRaisedMsg As String
' Invoked in case of events identified only by their event code.
Public Sub New(ByVal msg As String, _
ByVal eventSource As Object, ByVal eventCode As Integer)
MyBase.New(msg, eventSource, eventCode)
' Perform custom initialization.
customCreatedMsg = String.Format("Event created at: {0}", _
DateTime.Now.TimeOfDay.ToString())
End Sub
' Invoked in case of events identified by their event code and
' event detailed code.
Public Sub New(ByVal msg As String, ByVal eventSource As Object, _
ByVal eventCode As Integer, ByVal detailedCode As Integer)
MyBase.New(msg, eventSource, eventCode, detailedCode)
' Perform custom initialization.
customCreatedMsg = String.Format("Event created at: {0}", _
DateTime.Now.TimeOfDay.ToString())
End Sub
' Raises the SampleWebFailureAuditEvent.
Public Overrides Sub Raise()
' Perform custom processing.
customRaisedMsg = String.Format("Event raised at: {0}", _
DateTime.Now.TimeOfDay.ToString())
' Raise the event.
WebBaseEvent.Raise(Me)
End Sub
' Obtains the current thread information.
Public Function GetRequestInformation() As WebRequestInformation
' No customization is allowed.
Return RequestInformation
End Function 'GetRequestInformation
'Formats Web request event information.
'This method is invoked indirectly by the provider
'using one of the overloaded ToString methods.
Public Overrides Sub FormatCustomEventDetails(ByVal formatter _
As WebEventFormatter)
MyBase.FormatCustomEventDetails(formatter)
' Add custom data.
formatter.AppendLine("")
formatter.IndentationLevel += 1
formatter.AppendLine("******** SampleWebFailureAuditEvent Start ********")
formatter.AppendLine(String.Format("Request path: {0}", _
RequestInformation.RequestPath))
formatter.AppendLine(String.Format("Request Url: {0}", _
RequestInformation.RequestUrl))
' Display custom event timing.
formatter.AppendLine(customCreatedMsg)
formatter.AppendLine(customRaisedMsg)
formatter.AppendLine("******** SampleWebFailureAuditEvent End ********")
formatter.IndentationLevel -= 1
End Sub
End Class
下列組態摘錄顯示如何讓 ASP.NET 使用 WebFailureAuditEvent 事件。
<healthMonitoring
enabled="true"
heartBeatInterval="0">
<providers>
<add name="EventLogProvider"
type="System.Web.Management.EventLogWebEventProvider,
System.Web,Version=2.0.3600.0,Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a"/>
</providers>
<eventMappings>
<add name="SampleWebFailureAuditEvent"
type="SamplesAspNet.SampleWebFailureAuditEvent,
webfailureauditevent,Version=1.0.1663.31140,
Culture=neutral,
PublicKeyToken=0d1fa0f69d94de96,
processorArchitecture=MSIL"/>
</eventMappings>
<rules>
<add name="Custom Failure Audit Default"
eventName=" SampleWebFailureAuditEvent "
provider="EventLogProvider"
profile="Default"/>
</rules>
</healthMonitoring>
備註
ASP.NET 健康情況監視可讓生產與作業人員管理已部署的 Web 應用程式。 System.Web.Management命名空間包含負責封裝應用程式健康狀態資料的健全狀況事件種類,以及負責處理此資料的提供者類型。 它也包含支援類型,可協助管理健康情況事件。
當安全性作業失敗時,就會 WebFailureAuditEvent 使用 類別。 其中一個範例是 Web 要求的 URL 授權失敗。
根據預設,ASP.NET 會設定為針對下列功能引發 WebFailureAuditEvent 事件:
檔案授權。 ASP.NET 只有在 Windows 身分識別與要求相關聯時,才會嘗試進行檔案授權。 相關的事件稽核程式碼為 AuditFileAuthorizationFailure 。
URL 授權。 這會控管未經授權嘗試存取 URL 資源。 匿名使用者的嘗試失敗不會稽核,因為大部分情況下都可以接受匿名驗證失敗。 相關的事件稽核程式碼為 AuditUrlAuthorizationFailure 。
一般未處理或安全性未處理的條件。 以下是與這些條件相關的事件代碼清單:
WebFailureAuditEvent引發事件時,ASP.NET 健全狀況監視會遞增相關的稽核失敗事件引發效能計數器,然後檢查組 healthMonitoring
態區段,以判斷是否有任何提供者訂閱事件。 如果提供者訂閱事件,ASP.NET 將事件分派給他們進行處理。
注意
若要在 System Monitor (PerfMon) 中檢視 [稽核失敗事件引發的效能計數器]) ,請在 [新增計數器] 視窗中,從 [效能物件] 下拉式清單中選取[ASP.NET],選取 [稽核失敗事件引發] 效能計數器,然後按一下 [新增] 按鈕。
注意
在大部分情況下,您將能夠使用實作的 ASP.NET 健康情況監視類型,而且您會在組態區段中指定值 healthMonitoring
來控制健康情況監視系統。 您也可以衍生自健康情況監視類型,以建立您自己的自訂事件和提供者。 如需衍生自 類別的 WebFailureAuditEvent 範例,請參閱範例一節。
給繼承者的注意事項
格式化自訂事件資訊以顯示時,請覆寫 FormatCustomEventDetails(WebEventFormatter) 方法,而不是 ToString 方法。 這可避免覆寫或竄改敏感性系統資訊。
建構函式
WebFailureAuditEvent(String, Object, Int32, Int32) |
使用提供的參數來初始化 WebFailureAuditEvent 類別的新執行個體。 |
WebFailureAuditEvent(String, Object, Int32) |
使用提供的參數來初始化 WebFailureAuditEvent 類別的新執行個體。 |
屬性
EventCode |
取得與事件關聯的代碼值。 (繼承來源 WebBaseEvent) |
EventDetailCode |
取得事件詳細資料代碼。 (繼承來源 WebBaseEvent) |
EventID |
取得與此事件相關聯的識別項。 (繼承來源 WebBaseEvent) |
EventOccurrence |
取得計數器,表示事件發生的次數。 (繼承來源 WebBaseEvent) |
EventSequence |
取得應用程式引發此事件的次數。 (繼承來源 WebBaseEvent) |
EventSource |
取得引發事件的物件。 (繼承來源 WebBaseEvent) |
EventTime |
取得事件引發的時間。 (繼承來源 WebBaseEvent) |
EventTimeUtc |
取得事件引發的時間。 (繼承來源 WebBaseEvent) |
Message |
取得描述事件的訊息。 (繼承來源 WebBaseEvent) |
ProcessInformation |
取得關於 ASP.NET 應用程式裝載處理序的資訊。 (繼承來源 WebManagementEvent) |
RequestInformation |
取得與 Web 要求相關的資訊。 (繼承來源 WebAuditEvent) |
方法
Equals(Object) |
判斷指定的物件是否等於目前的物件。 (繼承來源 Object) |
FormatCustomEventDetails(WebEventFormatter) |
提供事件資訊的標準格式。 (繼承來源 WebBaseEvent) |
GetHashCode() |
做為預設雜湊函式。 (繼承來源 Object) |
GetType() |
取得目前執行個體的 Type。 (繼承來源 Object) |
IncrementPerfCounters() |
遞增 [引發的稽核失敗事件] 效能計數器。 |
MemberwiseClone() |
建立目前 Object 的淺層複製。 (繼承來源 Object) |
Raise() |
告知設定的提供者事件已發生來引發事件。 (繼承來源 WebBaseEvent) |
ToString() |
針對顯示用途,格式化事件資訊。 (繼承來源 WebBaseEvent) |
ToString(Boolean, Boolean) |
針對顯示用途,格式化事件資訊。 (繼承來源 WebBaseEvent) |