Web Part ที่ขึ้นอยู่กับ WPProperty อาจไม่ทํางานอย่างถูกต้องอีกต่อไปใน SharePoint Server (KB5003528)

นำไปใช้กับ
SharePoint Server 2016 SharePoint Server 2019 SharePoint Foundation 2013 SP1

อาการ

Web Part ที่ขึ้นอยู่กับ WPProperty อาจไม่ทํางานอย่างถูกต้องอีกต่อไป และสร้างแท็กเหตุการณ์ a7wm1 ในบันทึก SharePoint Unified Logging System (ULS)

สาเหตุ

ปัญหานี้เกิดขึ้นเนื่องจาก SharePoint Server ตอนนี้ต้องใช้ฟาร์มเพื่อประกาศชนิด .NET ที่ได้รับอนุญาตให้เข้าถึง WPProperty ในไฟล์ web.config ชนิด .NET ที่ไม่ได้อยู่ในรายการจะไม่มีสิทธิ์เข้าถึง WPProperty เพื่อเป็นการป้องกันความปลอดภัย

การแก้ปัญหา

เมื่อต้องการแก้ไขปัญหานี้ ให้ติดตั้งการอัปเดตอย่างใดอย่างหนึ่งต่อไปนี้:

เมื่อต้องการทําให้ Web Part ทํางานตามที่คาดไว้ ให้ทําตามขั้นตอนต่อไปนี้เพื่อประกาศชนิด .NET ที่ได้รับผลกระทบตามที่ได้รับอนุญาตให้เข้าถึง WPProperty ในไฟล์ web.config

สำคัญ

อนุญาตให้ชนิด .NET เข้าถึง WPProperty หลังจากที่คุณยืนยันว่าปลอดภัยแล้วเท่านั้น

  1. เปิดไฟล์ web.config ของโปรแกรมประยุกต์บนเว็บของคุณบนแต่ละเซิร์ฟเวอร์ในฟาร์ม SharePoint ของคุณ

  2. ค้นหาส่วนการกําหนดค่า/SharePoint/SafeMode

  3. เพิ่มส่วน AllowedWPProperties ถ้ายังไม่มี

  4. เพิ่มองค์ประกอบ AllowedWPProperty ใหม่ที่มีแอตทริบิวต์ type และ propertyName เพื่อแสดงชนิดที่ควรได้รับอนุญาตให้เข้าถึง WPProperty

    <SafeMode MaxControls="200" CallStack="false" DirectFileDependencies="15" TotalFileDependencies="250" AllowPageLevelTrace="false">
        <AllowedWPProperties>
            <AllowedWPProperty type="<allowedWPPropertyTypeName>,<allowedWPPropertyAssemblyName>, <AssemblyVersion>, <AssemblyLanguageSetting>, <AssemblyPublicKey>" propertyName="<Allow WPProperty property name>"/>
        </AllowedWPProperties>
    </SafeMode>

  5. บันทึกการเปลี่ยนแปลงไปยังไฟล์ web.config

เมื่อต้องการระบุค่าที่ถูกต้องสําหรับแอตทริบิวต์ type และ propertyName ให้สอบถามบันทึก ULS สําหรับแท็กเหตุการณ์ a7wm1 และจดบันทึกรายการบันทึก ตัวอย่างเช่น
 
"WPProperty has been blocked for security reason. blocked AssemblyQualifiedName is "<BlockedWPPropertyTypeName>, <allowedWPPropertyAssemblyName>, <AssemblyVersion>, <AssemblyLanguageSetting>, <AssemblyPublicKey>" | blocked property name is "<blocked WPProperty name>",
 
เมื่อต้องการอนุญาตให้ชนิดนี้เข้าถึง WPProperty ให้ตั้งค่าแอตทริบิวต์ AllowedWPPProperty เป็น ค่าของ AssemblyQualifiedName ที่ถูกบล็อก และตั้งค่าแอตทริบิวต์ propertyName เป็นค่าชื่อคุณสมบัติที่ถูกบล็อก

การเปลี่ยนแปลงประวัติ

ตารางต่อไปนี้สรุปการเปลี่ยนแปลงที่สําคัญที่สุดบางรายการในหัวข้อนี้

วันที่ คำอธิบาย
14 กันยายน 2021 เพิ่มการอัปเดตสองรายการในส่วน "การแก้ปัญหา"