السلام عليكم ورحمة الله وبركاته
أستخدم حاليا طريقة شخصية في إدارة صلاحيات أحد الأنظمة وأقوم بعمل التالي:
في صفحة المشروع الأساسية أستلم اسم المستخدم من على الشبكة المحلية عن طريق هذا الكود:
Dim strName As String = HttpContext.Current.User.Identity.Name.ToString()
واتحقق ان كان موجودا في جدول المستخدمين أم لا. وفي حالة أنه مستخدم مسجل أقوم بمنحه Session
Session("username") = strNameثم أقوم بتحويل الصفحة الى مجلد معين حسب الصلاحية التي أرغب بها وفي كل مجلد هناك MasterPage خاصة لكل فئة من المستخدمين
Response.Redirect("/users/Default.aspx")في حالة عدم وجوده لا يحصل على Session أقوم بتحويله مباشرة الى صفحة خارج النظام
Response.Redirect("na.aspx")في صفحات النظام الداخلية استدعي الكود التالي والذي يتأكد ان كان لديه Session ام لا
If Session("username") = "" Then Response.Redirect("Default.aspx")وهنا لدي سؤالين:
الأول: بالطبع لما يحصل المستخدم على Session فانه في نفس الوقت يمكن أن يتصفح أي مجلد آخر لو عرف ب وكتب العنوان يدويا لأنه حاصل على Session على مستوى المشروع.
الثاني: ما هي عيوب هذه الطريقة؟ وما هي مقترحاتكم لتطويرها؟
شكرا جزيلا