ฉันมีเว็บไซต์ MVC ที่ใช้การตรวจสอบสิทธิ์ OAuth / โทเค็นเพื่อตรวจสอบสิทธิ์คำขอ ตัวควบคุมที่เกี่ยวข้องทั้งหมดมีคุณสมบัติที่ถูกต้องและการตรวจสอบความถูกต้องก็ใช้ได้
ปัญหาคือไม่ใช่ทุกคำขอที่สามารถได้รับอนุญาตในขอบเขตของแอตทริบิวต์ - การตรวจสอบการอนุญาตบางอย่างจะต้องดำเนินการในรหัสที่เรียกโดยวิธีการควบคุม - วิธีที่ถูกต้องในการส่งคืนการตอบกลับที่ไม่ได้รับอนุญาต 401 ในกรณีนี้คืออะไร?
ฉันได้ลองthrow new HttpException(401, "Unauthorized access");
แล้ว แต่เมื่อฉันทำสิ่งนี้รหัสสถานะการตอบกลับคือ 500 และฉันก็ได้รับสแต็กแทร็กด้วย แม้แต่ใน DelegatingHandler ในการบันทึกของเราเราจะเห็นว่าการตอบสนองคือ 500 ไม่ใช่ 401
HttpResponseException
Unauthorized()
การใช้ข้อยกเว้นสำหรับข้อผิดพลาด 'คาดว่า' เป็นการต่อต้านรูปแบบเล็กน้อยดังนั้นหากมีบางกรณีที่คุณคาดว่าการโทรจะทำผิดพลาดการส่งกลับUnauthorized()
อาจเป็นการโทรที่ถูกต้อง บันทึกHttpResponseException
สำหรับสิ่งที่ไม่คาดคิดอย่างแท้จริง