การบันทึกการตรวจสอบ | ศูนย์เอกสาร (2023)

วิกิพีเดีย: "เส้นทางการตรวจสอบ (เรียกอีกอย่างว่าบันทึกการตรวจสอบ) เป็นบันทึกตามลำดับเวลาที่เกี่ยวข้องกับความปลอดภัย ชุดของบันทึก และ/หรือปลายทางและแหล่งที่มาของบันทึกที่ให้หลักฐานที่เป็นเอกสารเกี่ยวกับลำดับของกิจกรรมที่ส่งผลกระทบต่อการดำเนินการ ขั้นตอน หรือเหตุการณ์เฉพาะ ณ เวลาใดๆ".

ABP Framework ให้ระบบการบันทึกการตรวจสอบที่ขยายได้ที่ทำการบันทึกการตรวจสอบโดยอัตโนมัติโดยการประชุมและจัดให้มีการกำหนดค่าชี้เพื่อควบคุมระดับของบันทึกการตรวจสอบ

หนึ่งวัตถุบันทึกการตรวจสอบ(ดูส่วนออบเจกต์บันทึกการตรวจสอบด้านล่าง) โดยทั่วไปจะสร้างและบันทึกตามคำขอเว็บ ประกอบด้วย;

  • รายละเอียดคำขอและการตอบสนอง(เช่น URL, วิธี Http, ข้อมูลเบราว์เซอร์, รหัสสถานะ HTTP... เป็นต้น)
  • ดำเนินการแล้ว(การกระทำของตัวควบคุมและการเรียกใช้เมธอดบริการแอปพลิเคชันพร้อมพารามิเตอร์)
  • การเปลี่ยนแปลงเอนทิตีเกิดขึ้นในคำขอของเว็บ
  • ข้อยกเว้นข้อมูล (หากมีข้อผิดพลาดขณะดำเนินการคำขอ)
  • ระยะเวลาของคำขอ(เพื่อวัดประสิทธิภาพของแอปพลิเคชัน)

เทมเพลตการเริ่มต้นได้รับการกำหนดค่าสำหรับระบบบันทึกการตรวจสอบซึ่งเหมาะสำหรับแอปพลิเคชันส่วนใหญ่ ใช้เอกสารนี้เพื่อควบคุมระบบบันทึกการตรวจสอบโดยละเอียด

การสนับสนุนผู้ให้บริการฐานข้อมูล

  • สนับสนุนอย่างเต็มที่โดยเอนทิตีเฟรมเวิร์กคอร์ผู้ให้บริการ.
  • การบันทึกการเปลี่ยนแปลงเอนทิตีไม่ได้รับการสนับสนุนโดยMongoDBผู้ให้บริการ. คุณสมบัติอื่น ๆ ทำงานได้ตามที่คาดไว้

ใช้การตรวจสอบ ()

ใช้การตรวจสอบ ()ควรเพิ่มมิดเดิลแวร์ไปยังไปป์ไลน์คำขอ ASP.NET Core เพื่อสร้างและบันทึกบันทึกการตรวจสอบ หากคุณสร้างแอปพลิเคชันโดยใช้เทมเพลตเริ่มต้นมันถูกเพิ่มเข้าไปแล้ว

ตัวเลือกการตรวจสอบ Abp

ตัวเลือกการตรวจสอบ Abpเป็นหลักวัตถุตัวเลือกเพื่อกำหนดค่าระบบบันทึกการตรวจสอบ คุณสามารถกำหนดค่าได้ในกำหนดค่าบริการวิธีการของคุณโมดูล:

กำหนดค่า(ตัวเลือก =>{ options.IsEnabled = false; //ปิดใช้งานระบบการตรวจสอบ});

นี่คือรายการตัวเลือกที่คุณสามารถกำหนดค่าได้:

(Video) ตรวจสอบสิทธิ ระบบศูนย์เอกสารดิจิทัล (Digital Document Center : DDC)

  • เปิดใช้งาน(ค่าเริ่มต้น:จริง): รูทสวิตช์เพื่อเปิดหรือปิดระบบการตรวจสอบ อ็อพชันอื่นจะไม่ถูกใช้หากมีค่านี้เท็จ.
  • ซ่อนข้อผิดพลาด(ค่าเริ่มต้น:จริง): ระบบบันทึกการตรวจสอบซ่อนและเขียนปกติบันทึกหากมีข้อผิดพลาดเกิดขึ้นขณะบันทึกออบเจกต์บันทึกการตรวจสอบ หากการบันทึกบันทึกการตรวจสอบมีความสำคัญต่อระบบของคุณ ให้ตั้งค่าเป็นเท็จเพื่อโยนข้อยกเว้นในกรณีที่ซ่อนข้อผิดพลาด
  • IsEnabledFor AnonymousUsers(ค่าเริ่มต้น:จริง): หากคุณต้องการเขียนบันทึกการตรวจสอบเฉพาะสำหรับผู้ใช้ที่ผ่านการรับรองความถูกต้อง ให้ตั้งค่านี้เป็นเท็จ. หากคุณบันทึกบันทึกการตรวจสอบสำหรับผู้ใช้ที่ไม่ระบุตัวตน คุณจะเห็นโมฆะสำหรับรหัสผู้ใช้ค่าสำหรับผู้ใช้เหล่านี้
  • AlwaysLogOnException(ค่าเริ่มต้น:จริง): หากคุณตั้งค่าเป็นจริง ระบบจะบันทึกบันทึกการตรวจสอบในกรณียกเว้น/ข้อผิดพลาดเสมอ โดยไม่ตรวจสอบตัวเลือกอื่นๆ (ยกเว้นเปิดใช้งานซึ่งปิดใช้งานการบันทึกการตรวจสอบโดยสมบูรณ์)
  • IsEnabledForIntegrationService(ค่าเริ่มต้น:เท็จ): การบันทึกการตรวจสอบถูกปิดใช้งานสำหรับบริการบูรณาการโดยค่าเริ่มต้น. ตั้งค่าคุณสมบัตินี้เป็นจริงเพื่อเปิดใช้งาน
  • IsEnabledForGetRequests(ค่าเริ่มต้น:เท็จ): คำขอ HTTP GET ไม่ควรเปลี่ยนแปลงใดๆ ในฐานข้อมูลตามปกติ และระบบบันทึกการตรวจสอบจะไม่บันทึกวัตถุบันทึกการตรวจสอบสำหรับคำขอ GET ตั้งค่านี้เป็นจริงเพื่อเปิดใช้งานสำหรับคำขอ GET
  • ปิดใช้งาน LogActionInfo(ค่าเริ่มต้น:เท็จ): หากคุณตั้งค่าเป็น "จริง" จะไม่มีการบันทึกอีกต่อไปตรวจสอบ LogActionInfo.
  • ชื่อแอปพลิเคชัน: หากแอปพลิเคชันหลายตัวกำลังบันทึกบันทึกการตรวจสอบลงในฐานข้อมูลเดียว ให้ตั้งค่าคุณสมบัตินี้เป็นชื่อแอปพลิเคชันของคุณ เพื่อให้คุณสามารถแยกความแตกต่างของบันทึกของแอปพลิเคชันต่างๆ ได้ หากคุณไม่ตั้งค่า มันจะตั้งค่าจากIApplicationInfoAccessor.ApplicationNameค่าซึ่งเป็นชื่อชุดประกอบรายการตามค่าเริ่มต้น
  • ประเภทที่ถูกละเว้น: รายการของพิมพ์s ที่จะถูกละเว้นสำหรับการบันทึกการตรวจสอบ หากเป็นประเภทเอนทิตี การเปลี่ยนแปลงสำหรับเอนทิตีประเภทนี้จะไม่ถูกบันทึก รายการนี้ยังใช้ในขณะที่ทำให้พารามิเตอร์การดำเนินการเป็นอนุกรม
  • ตัวเลือกประวัติเอนทิตี: รายการตัวเลือกที่ใช้เพื่อกำหนดว่าประเภทเอนทิตีถูกเลือกเพื่อบันทึกการเปลี่ยนแปลงเอนทิตีหรือไม่ ดูส่วนด้านล่างสำหรับรายละเอียด
  • ผู้ให้ข้อมูล: รายการของผู้ให้ข้อมูลบันทึกการตรวจสอบการใช้งาน ผู้ร่วมให้ข้อมูลเป็นวิธีการขยายระบบบันทึกการตรวจสอบ ดูส่วน "ผู้ร่วมให้ข้อมูลบันทึกการตรวจสอบ" ด้านล่าง
  • AlwaysLogSelectors: รายการตัวเลือกเพื่อบันทึกบันทึกการตรวจสอบสำหรับเกณฑ์ที่ตรงกัน

ตัวเลือกประวัติเอนทิตี

การบันทึกการเปลี่ยนแปลงทั้งหมดของเอนทิตีทั้งหมดของคุณจำเป็นต้องใช้พื้นที่ฐานข้อมูลจำนวนมาก สำหรับเหตุผลนี้,ระบบบันทึกการตรวจสอบจะไม่บันทึกการเปลี่ยนแปลงใดๆ สำหรับเอนทิตี เว้นแต่คุณจะกำหนดค่าอย่างชัดเจน.

หากต้องการบันทึกการเปลี่ยนแปลงทั้งหมดของเอนทิตีทั้งหมด เพียงใช้AddAllEntities()วิธีการขยาย

กำหนดค่า  (ตัวเลือก =>{ options.EntityHistorySelectors.AddAllEntities();});

ตัวเลือก EntityHistory Selectorsจริง ๆ แล้วรายการประเภทเพรดิเคต คุณสามารถเขียนแลมบ์ดานิพจน์เพื่อกำหนดตัวกรองของคุณ

ตัวเลือกตัวอย่างด้านล่างทำเช่นเดียวกันกับAddAllEntities()วิธีการขยายที่กำหนดไว้ข้างต้น:

กำหนดค่า (ตัวเลือก =>{ options.EntityHistorySelectors.Add ( ใหม่ NamedTypeSelector ( "MySelectorName", พิมพ์ => { ถ้า (typeof(IEntity).IsAssignableFrom(ชนิด)) { คืนค่าจริง; } อื่น { คืนค่าเท็จ; } } ) );});

เงื่อนไขtypeof(IEntity).IsAssignableFrom(ประเภท)จะจริงสำหรับคลาสใด ๆ ที่ใช้IEntityอินเทอร์เฟซ (ในทางเทคนิคแล้วนี่คือเอนทิตีทั้งหมดในแอปพลิเคชันของคุณ) คุณสามารถตรวจสอบและส่งคืนตามเงื่อนไขจริงหรือเท็จขึ้นอยู่กับความชอบของคุณ

ตัวเลือก EntityHistory Selectorsเป็นวิธีที่ยืดหยุ่นและไดนามิกในการเลือกเอนทิตีสำหรับการบันทึกการตรวจสอบ อีกวิธีหนึ่งคือการใช้ตรวจสอบแล้วและปิดใช้งานการตรวจสอบคุณลักษณะต่อเอนทิตี

เปิดใช้งาน/ปิดใช้งานการบันทึกการตรวจสอบสำหรับบริการ

เปิด/ปิดสำหรับตัวควบคุมและการดำเนินการ

การดำเนินการของคอนโทรลเลอร์ทั้งหมดจะถูกบันทึกโดยค่าเริ่มต้น (ดูIsEnabledForGetRequestsด้านบนสำหรับคำขอ GET)

คุณสามารถใช้[ปิดการตรวจสอบ]หากต้องการปิดใช้งานสำหรับประเภทคอนโทรลเลอร์เฉพาะ:

[ปิดใช้งานการตรวจสอบ]HomeController คลาสสาธารณะ: AbpController{ //...}

ใช้[ปิดการตรวจสอบ]สำหรับการดำเนินการใด ๆ เพื่อควบคุมในระดับการดำเนินการ:

(Video) ศูนย์สารสนเทศหรือศูนย์เอกสาร Skype

HomeController คลาสสาธารณะ: AbpController{ [DisableAuditing] งาน async สาธารณะ  หน้าแรก () { //... } งาน async สาธารณะ  OtherActionLogged() { //... }}

เปิด/ปิดสำหรับบริการแอปพลิเคชันและวิธีการ

บริการสมัครการเรียกใช้เมธอดยังรวมอยู่ในบันทึกการตรวจสอบตามค่าเริ่มต้น คุณสามารถใช้[ปิดการตรวจสอบ]ในระดับบริการหรือวิธีการ

เปิด/ปิดสำหรับบริการอื่นๆ

สามารถเปิดใช้งานการบันทึกการตรวจสอบการดำเนินการสำหรับคลาสประเภทใดก็ได้ (ลงทะเบียนและแก้ไขจากการฉีดพึ่งพา) ในขณะที่เปิดใช้งานสำหรับตัวควบคุมและบริการแอปพลิเคชันตามค่าเริ่มต้นเท่านั้น

ใช้[ตรวจสอบแล้ว]และ[ปิดการตรวจสอบ]สำหรับคลาสหรือเมธอดใด ๆ ที่ต้องบันทึกการตรวจสอบ นอกจากนี้ ชั้นเรียนของคุณสามารถ (โดยตรงหรือโดยเนื้อแท้) ใช้เปิดใช้งาน Iauditing แล้วอินเทอร์เฟซเพื่อเปิดใช้งานการบันทึกการตรวจสอบสำหรับคลาสนั้นตามค่าเริ่มต้น

เปิด/ปิดสำหรับเอนทิตีและคุณสมบัติ

เอนทิตีจะถูกละเว้นในการบันทึกการตรวจสอบการเปลี่ยนแปลงเอนทิตีในกรณีต่อไปนี้

  • หากคุณเพิ่มประเภทเอนทิตีให้กับAbpAuditingOptions.IgnoredTypes(ตามที่อธิบายไว้ก่อนหน้านี้) จะถูกละเว้นโดยสิ้นเชิงในระบบการบันทึกการตรวจสอบ
  • หากวัตถุไม่ใช่เอนทิตี(ไม่ปฏิบัติIEntityโดยตรงหรือโดยเนื้อแท้ - เอนทิตีทั้งหมดใช้อินเทอร์เฟซนี้เป็นค่าเริ่มต้น)
  • หากประเภทเอนทิตีไม่เป็นสาธารณะ

มิฉะนั้นคุณสามารถใช้ตรวจสอบแล้วเพื่อเปิดใช้งานการบันทึกการตรวจสอบการเปลี่ยนแปลงเอนทิตีสำหรับเอนทิตี:

[ตรวจสอบ] MyEntity คลาสสาธารณะ : Entity{ //...}

หรือปิดใช้งานสำหรับเอนทิตี:

[ปิดใช้งานการตรวจสอบ] MyEntity คลาสสาธารณะ : เอนทิตี{ //...}

การปิดใช้งานการบันทึกการตรวจสอบอาจจำเป็นต่อเมื่อเอนทิตีถูกเลือกโดยAbpAuditingOptions.EntityHistorySelectorsที่ได้อธิบายไว้ก่อนหน้านี้

คุณสามารถปิดใช้งานการตรวจสอบคุณสมบัติบางอย่างของเอนทิตีของคุณสำหรับการควบคุมโดยละเอียดเกี่ยวกับการบันทึกการตรวจสอบ:

[ตรวจสอบ] MyUser คลาสสาธารณะ: เอนทิตี { ชื่อสตริงสาธารณะ { รับ; ชุด; } อีเมลสตริงสาธารณะ { รับ; ชุด; } [ปิดใช้งานการตรวจสอบ] // ละเว้นรหัสผ่านในการตรวจสอบการบันทึกรหัสผ่านสตริงสาธารณะ { รับ; ชุด; }}

ระบบบันทึกการตรวจสอบจะบันทึกการเปลี่ยนแปลงสำหรับผู้ใช้ของฉันเอนทิตีในขณะที่ละเว้นรหัสผ่านทรัพย์สินที่อาจเป็นอันตรายให้เก็บไว้เพื่อความปลอดภัย

(Video) Parashift Document Center

ในบางกรณี คุณอาจต้องการบันทึกพร็อพเพอร์ตี้บางรายการแต่ไม่ต้องสนใจรายการอื่นๆ ทั้งหมด การเขียน[ปิดการตรวจสอบ]สำหรับคุณสมบัติอื่น ๆ ทั้งหมดจะน่าเบื่อ ในกรณีเช่นนี้ ให้ใช้[ตรวจสอบแล้ว]เฉพาะสำหรับคุณสมบัติที่ต้องการและทำเครื่องหมายเอนทิตีด้วย[ปิดการตรวจสอบ]คุณลักษณะ:

[DisableAuditing] คลาสสาธารณะ MyUser : Entity{ [Audited] // บันทึกเฉพาะการเปลี่ยนชื่อสตริงสาธารณะ Name { รับ; ชุด; } อีเมลสตริงสาธารณะ { รับ; ชุด; } รหัสผ่านสตริงสาธารณะ { รับ; ชุด; }}

I.AuditingStore

I.AuditingStoreเป็นอินเทอร์เฟซที่ใช้ในการบันทึกวัตถุบันทึกการตรวจสอบ (อธิบายด้านล่าง) โดย ABP Framework หากคุณต้องการบันทึกออบเจกต์บันทึกการตรวจสอบไปยังที่เก็บข้อมูลแบบกำหนดเอง คุณสามารถใช้I.AuditingStoreในแอปพลิเคชันของคุณเองและแทนที่โดยใช้ระบบหัวฉีดพึ่งพา.

SimpleLogAuditingStoreใช้ในกรณีที่ไม่มีการลงทะเบียนร้านค้าตรวจสอบบัญชี เพียงแค่เขียนวัตถุการตรวจสอบตามมาตรฐานระบบบันทึก.

โมดูลการบันทึกการตรวจสอบได้รับการกำหนดค่าในเทมเพลตเริ่มต้นบันทึกวัตถุบันทึกการตรวจสอบไปยังฐานข้อมูล (รองรับผู้ให้บริการฐานข้อมูลหลายราย) ดังนั้น ส่วนมากคุณไม่สนใจว่าจะทำอย่างไรI.AuditingStoreถูกนำไปใช้และ

วัตถุบันทึกการตรวจสอบ

หนึ่งวัตถุบันทึกการตรวจสอบถูกสร้างขึ้นสำหรับแต่ละคนขอเว็บโดยค่าเริ่มต้น. ออบเจกต์บันทึกการตรวจสอบสามารถแสดงด้วยไดอะแกรมความสัมพันธ์ต่อไปนี้:

การบันทึกการตรวจสอบ | ศูนย์เอกสาร (1)

  • ข้อมูลบันทึกการตรวจสอบ: วัตถุรากที่มีคุณสมบัติดังต่อไปนี้:
    • ชื่อแอปพลิเคชัน: เมื่อคุณบันทึกบันทึกการตรวจสอบของแอปพลิเคชันต่างๆ ลงในฐานข้อมูลเดียวกัน คุณสมบัตินี้จะใช้เพื่อแยกความแตกต่างของบันทึกของแอปพลิเคชัน
    • รหัสผู้ใช้: ID ของผู้ใช้ปัจจุบัน หากผู้ใช้เข้าสู่ระบบแล้ว
    • ชื่อผู้ใช้: ชื่อผู้ใช้ของผู้ใช้ปัจจุบัน หากผู้ใช้ได้เข้าสู่ระบบแล้ว (ค่านี้ไม่ได้ขึ้นอยู่กับโมดูล/ระบบระบุตัวตนสำหรับการค้นหา)
    • รหัสผู้เช่า: รหัสของผู้เช่าปัจจุบันสำหรับแอปพลิเคชันที่มีผู้เช่าหลายคน
    • ชื่อผู้เช่า: ชื่อของผู้เช่าปัจจุบันสำหรับแอปพลิเคชันที่มีผู้เช่าหลายคน
    • เวลาดำเนินการ: เวลาที่วัตถุบันทึกการตรวจสอบนี้ถูกสร้างขึ้น
    • ระยะเวลาการดำเนินการ: ระยะเวลาดำเนินการทั้งหมดของคำขอ หน่วยเป็นมิลลิวินาที สามารถใช้เพื่อสังเกตประสิทธิภาพของแอปพลิเคชัน
    • รหัสลูกค้า: รหัสของไคลเอ็นต์ปัจจุบัน ถ้าไคลเอ็นต์ได้รับการตรวจสอบสิทธิ์แล้ว โดยทั่วไปไคลเอ็นต์คือแอปพลิเคชันของบุคคลที่สามที่ใช้ระบบผ่าน HTTP API
    • ชื่อลูกค้า: ชื่อของลูกค้าปัจจุบัน ถ้ามี
    • ที่อยู่ IP ของลูกค้า: ที่อยู่ IP ของไคลเอ็นต์/อุปกรณ์ผู้ใช้
    • รหัสความสัมพันธ์: ปัจจุบันรหัสความสัมพันธ์. รหัสสหสัมพันธ์ใช้เพื่อเชื่อมโยงบันทึกการตรวจสอบที่เขียนโดยแอปพลิเคชันต่างๆ (หรือไมโครเซอร์วิส) ในการดำเนินการทางตรรกะเดียว
    • ข้อมูลเบราว์เซอร์: ชื่อเบราว์เซอร์/ข้อมูลเวอร์ชันของผู้ใช้ปัจจุบัน หากมี
    • วิธีการ Http: วิธีการ HTTP ของคำขอปัจจุบัน (GET, POST, PUT, DELETE... เป็นต้น)
    • HttpStatusCode: รหัสสถานะการตอบสนอง HTTP สำหรับคำขอนี้
    • URL: URL ของคำขอ
  • ตรวจสอบ LogActionInfo: โดยทั่วไปแล้ว การดำเนินการบันทึกการตรวจสอบจะเป็นการดำเนินการของผู้ควบคุมหรือบริการสมัครการเรียกใช้เมธอดระหว่างการร้องขอเว็บ บันทึกการตรวจสอบหนึ่งรายการอาจมีการดำเนินการหลายอย่าง วัตถุการกระทำมีคุณสมบัติดังต่อไปนี้:
    • ชื่อบริการ: ชื่อของตัวควบคุม/บริการที่ดำเนินการ
    • ชื่อเมธอด: ชื่อของวิธีการดำเนินการของตัวควบคุม/บริการ
    • พารามิเตอร์: ข้อความที่จัดรูปแบบ JSON แทนพารามิเตอร์ที่ส่งไปยังเมธอด
    • เวลาดำเนินการ: เวลาที่วิธีนี้ถูกดำเนินการ
    • ระยะเวลาการดำเนินการ: ระยะเวลาของการดำเนินการเมธอด หน่วยเป็นมิลลิวินาที สามารถใช้เพื่อสังเกตประสิทธิภาพของวิธีการ
  • ข้อมูลการเปลี่ยนแปลงเอนทิตี: แสดงถึงการเปลี่ยนแปลงของเอนทิตีในคำขอเว็บนี้ บันทึกการตรวจสอบอาจมีการเปลี่ยนแปลงเอนทิตีเป็นศูนย์หรือมากกว่า การเปลี่ยนแปลงเอนทิตีมีคุณสมบัติดังต่อไปนี้:
    • เปลี่ยนเวลา: เวลาที่มีการเปลี่ยนแปลงเอนทิตี
    • เปลี่ยนประเภท: enum ที่มีฟิลด์ต่อไปนี้:สร้าง(0),อัปเดต(1) และลบแล้ว(2).
    • รหัสเอนทิตี: รหัสของเอนทิตีที่เปลี่ยนแปลง
    • รหัสผู้เช่านิติบุคคล: รหัสของผู้เช่านิติบุคคลนี้
    • EntityTypeชื่อเต็ม: พิมพ์ชื่อ (คลาส) ของเอนทิตีที่มีเนมสเปซแบบเต็ม (เช่นAcme.BookStore.Bookสำหรับเอนทิตีหนังสือ)
  • EntityPropertyChangeInfo: แสดงถึงการเปลี่ยนแปลงคุณสมบัติของเอนทิตี ข้อมูลการเปลี่ยนแปลงเอนทิตี (อธิบายไว้ด้านบน) อาจมีการเปลี่ยนแปลงคุณสมบัติอย่างน้อยหนึ่งรายการด้วยคุณสมบัติต่อไปนี้:
    • ใหม่มูลค่า: มูลค่าใหม่ของคุณสมบัติ มันคือโมฆะหากเอนทิตีถูกลบ
    • ค่าเดิม: เก่า/ค่าเดิมก่อนการเปลี่ยนแปลง. มันคือโมฆะหากเอนทิตีถูกสร้างขึ้นใหม่
    • ชื่อทรัพย์สิน: ชื่อของคุณสมบัติในคลาสเอนทิตี
    • PropertyTypeFullName: พิมพ์ (คลาส) ชื่อของคุณสมบัติที่มีเนมสเปซแบบเต็ม
  • ข้อยกเว้น: วัตถุบันทึกการตรวจสอบอาจมีข้อยกเว้นเป็นศูนย์หรือมากกว่า ด้วยวิธีนี้ คุณจะได้รับรายงานคำขอที่ล้มเหลว
  • ความคิดเห็น: ค่าสตริงที่กำหนดเองเพื่อเพิ่มข้อความที่กำหนดเองไปยังรายการบันทึกการตรวจสอบ วัตถุบันทึกการตรวจสอบอาจมีความคิดเห็นเป็นศูนย์หรือมากกว่านั้น

นอกจากคุณสมบัติมาตรฐานที่อธิบายไว้ข้างต้นแล้วข้อมูลบันทึกการตรวจสอบ,ตรวจสอบ LogActionInfoและข้อมูลการเปลี่ยนแปลงเอนทิตีวัตถุใช้IHasExtraPropertiesอินเทอร์เฟซ เพื่อให้คุณสามารถเพิ่มคุณสมบัติแบบกำหนดเองให้กับวัตถุเหล่านี้ได้

ผู้ร่วมให้ข้อมูลบันทึกการตรวจสอบ

คุณสามารถขยายระบบการตรวจสอบได้โดยการสร้างคลาสที่ได้รับมาจากผู้ให้ข้อมูลบันทึกการตรวจสอบคลาสที่กำหนดบริจาคล่วงหน้าและโพสต์มีส่วนร่วมวิธีการ

ผู้ร่วมสร้างไว้ล่วงหน้าเพียงรายเดียวคือAspNetCoreAuditLogContributorคลาสซึ่งตั้งค่าคุณสมบัติที่เกี่ยวข้องสำหรับคำขอ HTTP

(Video) Document Center Tutorial

ผู้ร่วมให้ข้อมูลสามารถตั้งค่าคุณสมบัติและคอลเลกชันของข้อมูลบันทึกการตรวจสอบชั้นเพื่อเพิ่มข้อมูลเพิ่มเติม

ตัวอย่าง:

MyAuditLogContributor คลาสสาธารณะ: AuditLogContributor{ สาธารณะแทนที่เป็นโมฆะ PreContribute (บริบท AuditLogContributionContext) { var currentUser =context.ServiceProvider.GetRequiredService(); Context.AuditInfo.SetProperty( "MyCustomClaimValue", currentUser.FindClaimValue("MyCustomClaim") ); } แทนที่สาธารณะเป็นโมฆะ PostContribute (บริบท AuditLogContributionContext) { context.AuditInfo.Comments.Add ("ความคิดเห็นบางส่วน ... "); }}
  • Context.ServiceProviderสามารถใช้เพื่อแก้ไขบริการจากการฉีดพึ่งพา.
  • บริบท.AuditInfoสามารถใช้เพื่อเข้าถึงวัตถุบันทึกการตรวจสอบปัจจุบันเพื่อจัดการได้

หลังจากสร้างผู้ให้ข้อมูลดังกล่าวแล้ว คุณต้องเพิ่มลงในAbpAuditingOptions.Contributorsรายการ:

กำหนดค่า  (ตัวเลือก =>{ options.Contributors.Add (ใหม่ MyAuditLogContributor());});

IAauditLogScope & IAuditingManager

ส่วนนี้จะอธิบายถึงIAauditLogScope&ผู้จัดการฝ่ายตรวจสอบบัญชีบริการสำหรับกรณีการใช้งานขั้นสูง

หนึ่งขอบเขตบันทึกการตรวจสอบเป็นขอบเขตโดยรอบที่สร้างและประหยัดวัตถุบันทึกการตรวจสอบ (อธิบายก่อนหน้านี้) ตามค่าเริ่มต้น ขอบเขตบันทึกการตรวจสอบจะถูกสร้างขึ้นสำหรับคำขอเว็บโดย Audit Log Middleware (ดูใช้การตรวจสอบ ()ส่วนด้านบน)

เข้าถึงขอบเขตบันทึกการตรวจสอบปัจจุบัน

ผู้ร่วมให้ข้อมูลบันทึกการตรวจสอบได้รับการอธิบายไว้ข้างต้น เป็นวิธีสากลในการจัดการกับวัตถุบันทึกการตรวจสอบ เป็นการดีหากคุณจะได้รับคุณค่าจากบริการ

หากคุณต้องการจัดการออบเจกต์บันทึกการตรวจสอบในจุดใดก็ได้ของแอปพลิเคชันของคุณ คุณสามารถเข้าถึงขอบเขตบันทึกการตรวจสอบปัจจุบันและรับออบเจ็กต์บันทึกการตรวจสอบปัจจุบัน (ไม่ขึ้นกับวิธีจัดการขอบเขต) ตัวอย่าง:

MyService คลาสสาธารณะ: ITransientDependency{ ส่วนตัวอ่านอย่างเดียว IAuditingManager _auditingManager; MyService สาธารณะ (IAuditingManager auditingManager) { _auditingManager = auditingManager; } งาน async สาธารณะ DoItAsync () { var currentAuditLogScope = _auditingManager.Current; ถ้า (currentAuditLogScope != null) { currentAuditLogScope.Log.Comments.Add ( "ดำเนินการวิธี MyService.DoItAsync :)" ); currentAuditLogScope.Log.SetProperty("MyCustomProperty", 42); } }}

ตรวจสอบเสมอว่า_auditingManager.ปัจจุบันเป็นโมฆะหรือไม่ เนื่องจากถูกควบคุมในขอบเขตภายนอก และคุณไม่สามารถทราบได้ว่ามีการสร้างขอบเขตบันทึกการตรวจสอบก่อนที่จะเรียกใช้เมธอดของคุณหรือไม่

สร้างขอบเขตบันทึกการตรวจสอบด้วยตนเอง

คุณแทบไม่ต้องสร้างขอบเขตบันทึกการตรวจสอบด้วยตนเอง แต่ถ้าจำเป็น คุณสามารถสร้างขอบเขตบันทึกการตรวจสอบได้โดยใช้ผู้จัดการฝ่ายตรวจสอบบัญชีดังตัวอย่างต่อไปนี้

(Video) Document Center Introduction

MyService คลาสสาธารณะ: ITransientDependency{ ส่วนตัวอ่านอย่างเดียว IAuditingManager _auditingManager; MyService สาธารณะ (IAuditingManager auditingManager) { _auditingManager = auditingManager; } async สาธารณะ Task DoItAsync() { ใช้ (var auditingScope = _auditingManager.BeginScope()) { ลอง { //Call other services... } catch (Exception ex) { //Add exceptions _auditingManager.Current.Log.Exceptions.Add (อดีต); โยน; } ในที่สุด { //บันทึกบันทึกเสมอเพื่อรอการตรวจสอบScope.SaveAsync(); } } }}

คุณสามารถโทรหาบริการอื่น ๆ พวกเขาอาจโทรหาคนอื่น ๆ พวกเขาอาจเปลี่ยนหน่วยงานและอื่น ๆ การโต้ตอบทั้งหมดเหล่านี้จะถูกบันทึกเป็นวัตถุบันทึกการตรวจสอบรายการเดียวในบล็อกสุดท้าย

โมดูลการบันทึกการตรวจสอบ

โมดูลการบันทึกการตรวจสอบใช้โดยทั่วไปI.AuditingStoreเพื่อบันทึกวัตถุบันทึกการตรวจสอบไปยังฐานข้อมูล รองรับผู้ให้บริการฐานข้อมูลหลายราย โมดูลนี้ถูกเพิ่มไปยังเทมเพลตเริ่มต้นตามค่าเริ่มต้น

ดูเอกสารโมดูลการบันทึกการตรวจสอบสำหรับข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้

Videos

1. SharePoint Document Center and Record Center Template
(QK MEDIA)
2. อาจารย์สิทธิ์ พิชิตดวง
(พิมพ์จัง ศูนย์เอกสารและพิมพ์งาน)
3. Pcx160รถ2เดือนเครื่องเดิมศูนย์เอกสารครบคะ
(Wilaimini Sukumvorapoj)
4. Document Centre Site Template-Training Video 45
(Adapt Software India Pvt. Ltd)
5. คู่มือเริ่มต้นใช้งานฉบับย่อEveryPig® Caregiver
(EveryPig)
6. ประสบการณ์การใช้เครื่องพิมพ์ HP PAGEWIDE XL SERIES
(MBA INTERNATIONAL)

References

Top Articles
Latest Posts
Article information

Author: Jerrold Considine

Last Updated: 01/11/2023

Views: 5635

Rating: 4.8 / 5 (78 voted)

Reviews: 93% of readers found this page helpful

Author information

Name: Jerrold Considine

Birthday: 1993-11-03

Address: Suite 447 3463 Marybelle Circles, New Marlin, AL 20765

Phone: +5816749283868

Job: Sales Executive

Hobby: Air sports, Sand art, Electronics, LARPing, Baseball, Book restoration, Puzzles

Introduction: My name is Jerrold Considine, I am a combative, cheerful, encouraging, happy, enthusiastic, funny, kind person who loves writing and wants to share my knowledge and understanding with you.