您好,登錄后才能下訂單哦!
這篇文章主要介紹“ASP.NET審計日志怎么配置”,在日常操作中,相信很多人在ASP.NET審計日志怎么配置問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”ASP.NET審計日志怎么配置”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
審計跟蹤(也稱為審核日志)是一個安全相關的時間順序記錄,記錄這些記錄的目的是為已經影響在任何時候的詳細操作,提供程序運行的證明文件記錄、源或事件。
ABP提供了能夠為應用程序交互自動記錄日志的基礎設施,它能記錄你調用的方法的調用者信息和參數信息。從根本上來說,存儲區域包含:
tenant id(相關的租戶Id),
user id(請求用戶Id),
server name(請求的服務名稱【調用方法對應的類】),
method name(調用方法名稱),
parameters(方法的參數【JSON格式】),
execution time(執行時間),
duration (執行耗時時間【通常是毫秒】),
IP address (客戶端IP地址),
computer name(客戶機名稱),
exception (異常【如果方法拋出異常】)等信息。
有了這些信息,我們不僅能夠知道誰進行了操作,還能夠估算出應用程序的性能及拋出的異常。甚至更多的,你可以得到有關應用程序的使用情況統計。
審計系統使用IAbpSession接口來獲取當前用戶Id和租戶ID。
注意:關于IAuditingStore接口
審計系統使用IAuditingStore接口來保存審計信息。module-zero項目是這個接口的完整實現,當然你也可以通過自己的方式來實現這個接口。如果你不想自己實現這個接口,SimpleLogAuditingStore類可以直接拿來使用,它是實現方式是將審計信息寫入日志中。
可以在你的模塊初始化方法(PreInitialize)中使用Configuration.Auditing的屬性來配置審計,Auditing屬性默認是啟用狀態(即true)。你可以禁用它,如下圖所示:
public class MyModule : AbpModule
{
public override void PreInitialize()
{
Configuration.Auditing.IsEnabled = false;
}
//...
}
以下是審計配置的屬性:
IsEnabled: 用于設置完全啟用或禁用審計系統。默認值:true.
IsEnabledForAnonymousUsers:如果設置成ture,未登陸的用戶的審計日志也會保存。默認值: false.
MvcControllers: 在ASP.NET MVC 控制器中使用審計日志
IsEnabled: 在ASP.NET MVC中啟用(true)或禁用(false)審計日志. 默認值: true.
IsEnabledForChildActions: 為MVC actions啟用(true)或禁用(false)審計日志. 默認值: false.
Selectors: 選擇使用其他類來處理審計日志的存儲。
正如你所看到的,審計系統單獨為mvc控制器提供了審計配置使之可以使用不同的方法來使用它。
Selectors是一個斷言(推斷類型)選擇器列表,用于選擇那種方式來保存審計日志。每一個選擇器包含一個唯一的名稱和一個斷言。斷言列表中默認的選擇器,使用的是應用程序服務類。如下圖所示:
Configuration.Auditing.Selectors.Add(
new NamedTypeSelector(
"Abp.ApplicationServices",
type => typeof (IApplicationService).IsAssignableFrom(type)
)
);
你可以在自己的模塊初始化方法(PreInitialize)中添加自己的斷言選擇器。同樣的,如果你不喜歡使用應用程序服務來保存審計日志,你也可以通過名稱(name)來移除斷言選擇器,這就是為什么斷言選擇器的名稱必須是唯一的(你也可以通過Linq的方式查找到選擇器來移除它)。
當你使用配置項來配置斷言選擇器時,你可以通過使用Audited和DisableAuditing特性標記到單個類或單個方法來實現審計系統的啟用和禁用。例如:
[Audited]
public class MyClass
{
public void MyMethod1(int a)
{
//...
}
[DisableAuditing]
public void MyMethod2(string b)
{
//...
}
public void MyMethod3(int a, int b)
{
//...
}
}
上述列子中,MyClass類中除了MyMethod2明確標記不需要審計外,其他的方法都會被審計。Audited特性能夠幫助你只想保存審計日志的方法,進行審計日志保存。
保存審計日志的方法必須是public修飾的,private和protected修飾的方法將會被忽略。 如果調用的方法不在類的引用范圍內,那么引用的方法必須是虛方法(virtual),如果依賴注入的是它自己的接口則不需要是虛方法(例如注入 IPersonService 來使用 PersonService類)。
ABP使用動態代理和攔截機制以后,使用虛方法是必須的。對MVC Controller actions 使用審計日志不是正確的做法,因為他們可能不是虛方法。
到此,關于“ASP.NET審計日志怎么配置”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。