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

مساعدة في Login

بدأه wael 14 في 20 يوليو 2010 · 5 رد · 860 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

أبغى مساعدتكم يا شباب

في Login

الشي اللي أبغاه

هو أنه بعد ما يدخل المستخدم

أسم المستخدم وكلمة المرور

ينقلة للصفحة اللي هو له صلاحية له

وأنا مسوي مجلد خاص بالAdmins

ومجلد خاص أخر لل Members

يعني إذا كان المستخدم من الAdmin

ينقله لصفحة الAdmin الرئيسية

وإذا كان Member ينقله لصفحة

ال Member الرئيسية

أنا كتب هذا الكود وما في فايدة

لو دخلت بأي مستخدم سواء كان عادي

أو إداري ينقلني لنفس الصفحة Defualt

الموجودة في solution

وهذا هو الكود

    protected void Login1_LoggedIn(object sender, EventArgs e)
    {
        if (User.IsInRole("Admin"))
        {
            Response.Redirect("~/Admin/AdminDefault.aspx");
        }
        else
        {
            Response.Redirect("~/Member/MemberDefault.aspx");
        } 
    }

وشكر لكم

تم تعديل هذه المشاركة بواسطة wael 14 في 20 يوليو 2010 في 00:25

لا إلة إلا أنت سبحانك إني كنت من الظالمين

#2

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

يمكن عمل أحد امرين أو يزيد :

احدهما عمل التالى :

protected void Login1_LoggedIn1(object sender, EventArgs e)
    {
        if (Login1.UserName != string.Empty)
        {
            string[] allroles = Roles.GetRolesForUser(Login1.UserName);

            if (allroles.Contains ("admin"))
            {
                Response.Redirect("~/admin/default.aspx");
            }
            else if (allroles.Contains ("Member"))
            {

                Response.Redirect("~/Member/default.aspx");
            }
        }       
    }

وهنا قد تم العمل مع إسم المستخدم والبحث عن كل المجموعات المنتمى إليها وتوجيهه للمجموعة التى يتبعها .

الأمر الثانى : عمل صفحة وسيط .

ولتعرف التالى :

فى أحداث Login Control لا يعتبر المستخدم قد اتم تسجيل الدخول Authenticated إلا بعد نهاية الـRequest . وبالتالى ستكون دوماً قيمة User فارغة . ولذلك يمكنك عمل ما يشبه المتبع فى تسجيل الدخول إلى منتدانا هذا : وهو كالتالى

فى الحدث :

 protected void Login1_LoggedIn1(object sender, EventArgs e)
    {
        Login1.DestinationPageUrl = "default2.aspx";
    }

وما سبق هو التوجيه لصفحة إسمها default2.aspx وبها نضع الكود التالى لتحويل المستخدم لصفحات المجموعة التى ينتمى إليها :

   protected void Page_Load(object sender, EventArgs e)
    {
        if (User.Identity.IsAuthenticated)
        {
            if (User.IsInRole("admin"))
            {
                Response.Redirect ( "~/admin/default.aspx");
            }
            else if (User.IsInRole("Member"))
            {

                  Response.Redirect (  "~/Member/default.aspx");
            }

        }
    }

فى امان الله

تم تعديل هذه المشاركة بواسطة Ahmed Moosa في 20 يوليو 2010 في 05:38

1

Ahmed Moosa

Microsoft Community Contributor | MCC

Microsoft Certified Professional Developer | MCPD

Microsoft Certified Technology Specialist | MCTS

Senior .NET Developer

.Net Trainer

English blog : http://weblogs.asp.net/ahmedmoosa/

مدونة عربى : http://ahmedmoosa.wordpress.com/

#3

شكرا أخي العزيز على مساعدتك

بس لو تكرمت ممكن تشرح لي السطرين هذه لأني ما فهمتها

 if (Login1.UserName != string.Empty) 
        { 
            string[] allroles = Roles.GetRolesForUser(Login1.UserName);

وإن شاء الله أجربها

وأرد لك خبر

لا إلة إلا أنت سبحانك إني كنت من الظالمين

#4
wael 14 كتب:

بس لو تكرمت ممكن تشرح لي السطرين هذه لأني ما فهمتها

 if (Login1.UserName != string.Empty) 
        { 
            string[] allroles = Roles.GetRolesForUser(Login1.UserName);

وإن شاء الله أجربها

وأرد لك خبر

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

فى السطر الأول نكشف عن إسم المستخدم هل هو فارغ ام لا أى أن هناك إسم مستخدم بالفعل فإذا كان بالفعل يمكن أن ينفذ الشرط ويذهب للسطر الثانى .

فى السطر الثانى : كان يصعب أن نستخدم User.IsInRole() لإن قيمة User تظل فارغة فى أحداث Login لذلك تم جلب مجموعات المستخدم بناءاً على الإسم المأخوذ من الأداة Login كما رأينا . وjl وتم تخزينها فى Array ومن ثم تاتى المجموعات فقط التى تخص المستخدم المذكور وهذا واضح من الآسم GetRolesForUser .

فى امان الله

تم تعديل هذه المشاركة بواسطة Ahmed Moosa في 20 يوليو 2010 في 13:07

Ahmed Moosa

Microsoft Community Contributor | MCC

Microsoft Certified Professional Developer | MCPD

Microsoft Certified Technology Specialist | MCTS

Senior .NET Developer

.Net Trainer

English blog : http://weblogs.asp.net/ahmedmoosa/

مدونة عربى : http://ahmedmoosa.wordpress.com/

#5

شكرا على مساعدتك معايا

بس ما في فايدة

كمان ما ينقل كل user

في role المناسبة

ما أدري كيف ؟؟؟

على العموم أشكرك

على مجهودك الطيب

لا إلة إلا أنت سبحانك إني كنت من الظالمين

#6

الف شكر للاخ الذي قام بطرح المشكلة

والف شكر للاخ الذي طرح حل للمشكلة

انا جربت حلك اخوي Ahmed Moosa وفعلا كان ناجح

لكن عندي سوال

اخوي بعد ماخذنا جميع الصلاحيات الي تخص اليوزر الذي قام بتسجيل الدخول حطينها في مصفوفه

ومن ثم استخدمت التالي

if (allroles.Contains ("admin"))

سوالي هنا اخوي ماهو عمل Contains

هذا سوالي واذا شرحت لي ماهو عملها اكون بشكل هذا فهمت الكود كامل واكون من الشاكرين لك

اسف على طرح نفسي بالمشكلة للكن انا ابحث عن الطريقه هذي من زمان والحمدلله وجدت لها حل بس باقي افهما بشكل كامل وتوقفت عند هذي النقطه لعلك اخوي تفيدني فيها

واكون من الشاكرين لك

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