سؤال

لقد كتبت فئة ملحقة لتخصيص AuthorizeAttribute الخاص بي لأساليب العمل الخاصة بي وأود أن أكون قادرًا على إدخال الرسائل في طريقة العرض الخاصة بي عند استيفاء شرط معين.أنا أستخدم الكود أدناه لتحميل عرض مشترك عندما يكون المستخدم غير مصرح له ولكنه لا يضيف رسالتي إلى مجموعة ViewData الخاصة بي.أيه أفكار؟

public override void OnAuthorization(AuthorizationContext filterContext)
{
    base.OnAuthorization(filterContext);
    if (IsNotAuthorized)
    {
        filterContext.Result = new ViewResult { ViewName = "NotAuthorized" };
        filterContext.Controller.ViewData["Message"] = "Go Away";
    }
}

لقد حاولت أيضًا تعيين عنصر مجموعة ViewData["Message"] الخاص بي أعلى المكالمة لتغيير العرض دون نجاح.

هل كانت مفيدة؟

المحلول

هل جربت؛

filterContext.Result = new RedirectResult("Home/Index");

لا أعرف كيفية إضافة ViewData ولكن هذا سيوصلك إلى وحدة التحكم غير المعتمدة على الأقل.

سأستمر في البحث عن التعليمات البرمجية لإضافتها لعرض البيانات في هذه الأثناء أو حتى ينشرها شخص ما.

يحرر

هذا قد يساعد.

تغيير قيم ActionExecutingContext في سمة التصفية المخصصة

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top