كيفية إعداد التوجيه لقسم الادارة بلدي في ASP.NET MVC؟
-
05-07-2019 - |
سؤال
وعادة عناوين URL لتبدو وكأنها معيار: www.example.com/controller/action
والآن أريد أن الإعداد قسم إدارتي مثل:
www.example.com/admin/ www.example.com/admin/user/list www.example.com/admin/content/add etc.
وهكذا والشكل هو: www.example.com/admin/controller/action
وأنا لا يمكن أن يبدو لمعرفة كيفية إعداد الطرق بحيث يبدو مثل ما ورد أعلاه.
المحلول
وتحتاج فقط لتعيين مسار جديد مع قسم 'مشرف' ضمنية في بداية تعريف الطريق.
وعلى سبيل المثال هذا إضافة إلى طرق بك في RegisterRoutes
في ملف Global.asax.cs
والتأكد من أنها تظهر فوق المسار الافتراضي (على افتراض انك لم تقم بإضافة طرق أخرى):
routes.MapRoute(
"Default",
"admin/{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = "" }
);
ملحوظة: في 'مشرف' جزء ضمني في بداية تعريف مسار
.ملحوظة 2: إذا قمت بإضافة مسارات أخرى خارجة الافتراضي سوف تحتاج إلى التأكد من أمر الطرق بشكل صحيح
وهنا هو وجود صلة لبلوق وظيفة جيدة من سكوت غوثري التوجيه MVC بشأن : <لأ href = "http://weblogs.asp.net/scottgu/archive/2007/12/03/asp-net-mvc-framework-part-2-url-routing.aspx" يختلط = "نوفولو noreferrer" > URL التوجيه
نصائح أخرى
والجواب كيلسي هو الحق على العلامة، ولكن كنت أريد أن أضيف شيئا للمناقشة. وثمة خيار آخر هو أن لا يكون في الواقع الطرق "مشرف" على الإطلاق، ولكن بدلا من ذلك تتطلب المشرف جلسات مصادقة للوصول إلى الواقع عناوين المواقع المحظورة.
وهذا هو في كثير من الأحيان كيف تتم الأمور في تطبيقات مريحة "التقليدية". جهاز تحكم يمثل نوع المورد الذي التلاعب، والعمل هو الفعل، والرقم هو معرف فريد لعضو محدد من تلك الموارد.
وبعبارة أخرى، بدلا من الاضطرار:
/content/list (for normal users)
/admin/content/add (for admins)
وسيكون لديك
/content/list (for everyone)
/content/add (for admin, but must be authenticated to work)
واضاف / المشرف / إلى URL لا تضيف قيمة حقيقية أي BENIFITS (ربما باستثناء أنه يمكنك كتابة منطق تأمين الخاص بك مع مجرد قاعدة واحدة ضد أي شيء تحت / المشرف)، ولكن المفاضلة هو طرق أكثر تعقيدا وكسر مستوى مريح . كسر الممارسات القياسية ليس في حد ذاته أمرا سيئا، ولكن يجب عليك أن تنظر أنها هي المعيار لسبب ما، وإلا إذا كان لديك فوائد محددة لكسر لهم، قد تفكر في الانضمام إليهم.
وتجدر الإشارة إلى أنه في كلتا أساليب URL عليك أن تكون مصادقة المستخدم، وإلا يمكن لأي شخص استخدامها.
في ASP.NET MVC، يمكنك تقييد الوصول إلى إجراءات (أو حتى التحكم بأكملها) على أساس مستوى المستخدم باستخدام ActionFilters. عن طريق تزيين إجراءات المشرف الوحيد مع هذه المرشحات، يمكنك التأكد يمكن للمستخدمين ادارى فقط مصادقة استخدامها في الواقع.
ومقروءة على دخول بلوق سكوت قو أو روب كونري إضافة للحصول على مزيد من المعلومات.
واعتبارا من MVC الإصدار 2 لديهم واضاف "المنطقة" المفهوم الذي يسمح لك أن تفعل هذا بشكل صحيح :) هنا هو <وأ href = "http://weblogs.asp.net/scottgu/archive/2009/07/ 31 / آسيا والمحيط الهادئ، صافي MVC-V2-المعاينة-1-released.aspx "يختلط =" نوفولو noreferrer "> آخر ScottGu حول MVC 2 معاينة .