الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

استفسار عن عمل صفحة للتحكم فى صلاحيات المستخدمين

بدأه وحيد الجندى في 7 يناير 2011 · 7 رد · 2,968 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله و بركاتة

سؤالى للاخوة الاعضاء عن كيفية انشاء صفحة للتحكم فى صلاحيات المستخدمين بالقراءة فقط و بالقراءة و الكتابة او بمنع كلاهما عن بعض المستخدمين

مع العلم اننى افضل ان لا استعمل اى من الصفحات الجاهزة من صفحات الدخول او التسجيل فى الفيجوال استوديو

للتوضيخ اكثر

عندى موقع بة عدة صفحات و اريد ان احدد المستخدمين المسموح لهم برؤية كل صفحة او الكتابة على كل صفحة على حدة و افضل بدون استخدام Roles الموجودة مسبقا فى البرنامج لانى سأعمل صفحة دخول خاصة بى

و لتكن قاعدة البيانات اسمها database و الجدول المسجل بة بيانات المستخدمين اسمة users و عندى بالموقع 5 صفحات هم usermgt.aspx , deptmgt.aspx , billing.aspx , store.aspx , custmgt.aspx

مع كامل الشكر مقدما

#2

بالنسبة لرؤية الصفحات انصح استخدام session بالطريقة التالية:

وضع هذا الكود في في Load event

 If Session("Login") = "True" Then
            Me.Logain.Text = Session("User")
  Else
            Response.Redirect("../User/Login.aspx")
        End If

اما في صفحة logain في حدث الزر ضع الكود التالي

   Dim ds As New Data.DataSet
        Dim da As New SqlDataAdapter("Select * from Employee_ where Employee_Name='" & TextBox1.Text & "' and Employee_ID='" & TextBox2.Text.ToString & "'", con)
        da.Fill(ds)
        ''
        If ds.Tables(0).Rows.Count = 0 Then
            Me.Label3.Visible = True

        Else
            Session("Login") = "True"
            Session("User") = ds.Tables(0).Rows(0)("Employee_Name")
            Session("Employee_ID") = ds.Tables(0).Rows(0)("Employee_ID")
                     Response.Redirect("User_.aspx")
        End If

بحيث ان يكون اسم المستخدم هو Employee name و كلمة المرور هي Employee ID

تم تعديل هذه المشاركة بواسطة lana2008 في 8 يناير 2011 في 07:32

#3

الاستاذ xacker

الفكرة الوحيدة هى ان اتعلم كتابة الكود لهذة المهمات حتى استطيع التغيير فى كل خصائص الدخول و الصلاحيات

ولكن اذا كانت هناك طريقة جاهزة تسمح لى الغيير الكامل فلا مانع

شكرا لاهتمامك

شكرا lana2008

هذة الطريقة ستحل موضوع رؤية الصفحات و لكن كيف سأتحكم فى صلاحيات المستخدمين؟

دعينى افكر معكى

هل من الممكن ان يتم اضافة حقول ك checkbox مع كل مستخدم فى قاعدة البيانات و تبين امكانية التعديل ام لا و يكون الوحيد المسموح لة التعديل فيها هو مدير النظام؟

لا اعرف فقط طرأت الفكرة فى راسى فحبيت اطرحها للمناقشة ايضا

مع كامل الشكر

تم تعديل هذه المشاركة بواسطة وحيد الجندى في 8 يناير 2011 في 09:39

#4

الاستاذ xacker

فى المكونات الجاهزة فى .NET عند استخدام الRole يتحدد ذلك لكل مجلد و ايضا الاعدادات الخاصة بة تتم من اعدادات البرنامج اثناء البناء و لكن انا اريد ان يكون التحكم عن طريق كل صفحة و يكون عندى امكانية التعديل للسماح بالقراءة فقط او بالقراءة و الكتابة

هل هذ ممكن فى المكونات الجاهزة؟

مع الشكر مقدما

#5

بسيطة :)

سأفترض أنك تستخدم الإصدار 2.x من الـ framework.. قم بزيارة المسار التالي (انتبه إلى أن اسم المجلد "v2.0.50727" لديك قد يختلف تبعاً للـ build المثبت):

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\ASP.NETWebAdminFiles

وستجد ما يسر خاطرك إن شاء الله smile.gif

ستجد الشفرة المصدرية لصفحات ASP.NET Web Site Administration Tool الافتراضية التي يستخدمها الفيجوال ستديو، بالتالي تستطيع الآن معرفة الطريقة التي يمكنك بها التعامل مع قاعدة بيانات الصلاحيات المستخدمة مع المكونات الجاهزة.

في هذا الموضوع المثبت في القسم:

/index.php?showtopic=220225

ستجد الكثير من المعلومات المهمة إن أردت اتباع طريقة الأخت لانا في كتابة إجرائياتك الخاصة.

لا تنساني من الدعاء.

تم تعديل هذه المشاركة بواسطة Xacker في 8 يناير 2011 في 18:45

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#6

بالنسبة لباقي المشروع

بتصوري سيكون كالتالي:

جدول :

للصلاحيات مرتبط مع جدول الموظفين عن طريق رقم الموظف

وخانات الجدول كالتالي Employee_ID,Table_Name ,ID ,insert,delete,update ,select

بحيث ID يكون Auto Number

Employee ID مربوطب بجدول Employee

و ايضا الحقول المتبقية وهي

update , delete ,select , insert

تحمل القيم اما true او false

وبعد ذلك نضع الكود التالي في حدث load

 Dim da_2 As New SqlDataAdapter("Select * from Access_ where User_Name='" & Logain.Text & "' and Employee_ID=" & Session("Employee_ID") & "", con)
            da_2.Fill(ds_2)
            If ds.Tables(0).Rows.Count = 1 Then
                If ds.Tables(0).Rows(0)("Insert_").ToString = "False" Then
                    Me.Insert.Enabled = False
                End If
                If ds.Tables(0).Rows(0)("Update_").ToString = "False" Then
                    Me.Update.Enabled = False
                End If
                If ds.Tables(0).Rows(0)("Delete_").ToString = "False" Then
                    Me.Delete.Enabled = False
                End If
                If ds.Tables(0).Rows(0)("Select_").ToString = "False" Then
                    Me.Select_.Enabled = False
               End If

حيث select,insert,delete,update هي ازر ونتعامل معم على خاصية التفعيل او عدم التفعيل فاذا كانت false يكون الزر غير مفعل واذا كان true يكون الزر مفعل

طبعا هذا مكمل للكود الي وضعتة في السابق و اتمنى ان تحل المشكلة

تم تعديل هذه المشاركة بواسطة lana2008 في 8 يناير 2011 في 19:16

1
#7

السلام عليكم

شكرا جزيلا اخوانى على مساعدتكم

الاخت lana2008 طريقة جيدة جدا للتعامل مع الصلاحيات

الاستاذxacker لم استطع التعامل مع الملفات الموجودة فى المجلد C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\ASP.NETWebAdminFiles و لكن قرات بعد ذلك الموضوع المثبت و فهمت منة اشياء جيدة عن طرق التعامل مع الدخول و التسجيل

#8

مرحبا

استعمل ال role-based security object و حدد ال identity and authoriztaion لل users و بس

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…