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

مشكله فى ال Membership

بدأه أبو حفصة في 28 أكتوبر 2008 · 12 رد · 1,235 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم قبل ما اى اخ يتكلم انا دورت ومالقتش اللى انا عازيزه انا عارف يعنى ايه Membership وازاى اقدر اشتغل بيها

لكن المشكله معايا فى كنترول الـ Login

الـ Roles موجودة

واليوزرز موجودين والادمن موجود

وكل واحد ليه حدود لكن ليه لما باكتب الكود مافيش حاجة بتحصل مع العلم انى كتبت الكود فى كذا حته وغيرت طريقة كتابته بكذا طريقه وبرضه مش عايز يعمل لوجن

ممكن حد يفيدنا

لحسن انا خلاص روحى طلعت

وعايش حلاوة روح :(

ولدي إليك وصيتي عهد الأسودْ

العز غايتنا نعيش لكي نسود

و عريننا في الأرض معروف الحدود

فاحم العرين و صنه عن عبث القرود

أظفارنا للمجد قد خُلقت فدى

و نيوبنا سُنَّت بأجساد العدى

و زئيرنا في الأرض مرهوب الصدى

نعلي على جثث الأعادي السؤددا

#2

اذن ماهي المشكلة ؟

و اين الكود الذي كتبته؟

علي فكرة لو بتستخدم ال Membership provider و تركت الاعدادات الافتراضية login control هيشتغل من غير كود

#3

هايشتغل من غير كود ازاى يا باشمهندس احمد

انا هاوريك الكونفج بتاعى شكله ايه

<add name="LocalSqlServer" connectionString="Data Source=SCORPION-471FBD\DEVE;Initial Catalog=School_DB;Integrated Security=True"/>

ده الكونيكشن سترينج ولازم يبقى باسم LocalSqlServer وانا باتعامل مع الMembership

وبعد كده تحت فى ده

<system.web>
		<authentication mode="Forms" />
  <roleManager enabled="true"/>
		<membership>
			<providers>
				<remove name="AspNetSqlMembershipProvider"/>
				<add connectionStringName="LocalSqlServer" enablePasswordRetrieval="false"
		 enablePasswordReset="true" requiresQuestionAndAnswer="true" applicationName="/"
		  requiresUniqueEmail="false" passwordFormat="Hashed" maxInvalidPasswordAttempts="5"
		  minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10"
		  passwordStrengthRegularExpression="" name="AspNetSqlMembershipProvider"
		  type="System.Web.Security.SqlMembershipProvider"/>
			</providers>
		</membership>
<compilation debug="true">
<assemblies>
		<add assembly="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
	  </assemblies>
<add assembly="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/></assemblies></compilation>

وباجى فى الايفينت بتاع

Login1_Authenticate

 if (User.IsInRole("Admin"))
		{
			Response.Redirect("the page ");
		}

ومانفعش

وغيرته فى الايفينت ده Login1_LoggingIn وما اشتغلش

وده

Login1_LoggedIn وماشتغلش

ولدي إليك وصيتي عهد الأسودْ

العز غايتنا نعيش لكي نسود

و عريننا في الأرض معروف الحدود

فاحم العرين و صنه عن عبث القرود

أظفارنا للمجد قد خُلقت فدى

و نيوبنا سُنَّت بأجساد العدى

و زئيرنا في الأرض مرهوب الصدى

نعلي على جثث الأعادي السؤددا

#4

؟؟

ولدي إليك وصيتي عهد الأسودْ

العز غايتنا نعيش لكي نسود

و عريننا في الأرض معروف الحدود

فاحم العرين و صنه عن عبث القرود

أظفارنا للمجد قد خُلقت فدى

و نيوبنا سُنَّت بأجساد العدى

و زئيرنا في الأرض مرهوب الصدى

نعلي على جثث الأعادي السؤددا

#5

في حدث Login.LoggedIn يمكن كتابة الكود التالي :

if(Roles.IsUserInRole(Login1.UserName,"Admin"))
{
Response.Redirect("  ");
}

رَبِّ أَوْزِعْنِي أَنْ أَشْكُرَ نِعْمَتَكَ الَّتِي أَنْعَمْتَ عَلَيَّ وَعَلَى وَالِدَيَّ وَأَنْ أَعْمَلَ صَالِحًا تَرْضَاهُ وَأَدْخِلْنِي بِرَحْمَتِكَ فِي عِبَادِكَ الصَّالِحِينَ

تلاوات خاشعة مؤثرة

#6

هل يظهر اي خطأ ؟

لماذا لديك Reference الى Assemblies خاصه بالويندوز؟

جرب بدل :

 <roleManager enabled="true"/>

ب

	<roleManager enabled="true">
			<providers>
				<clear/>
				<add connectionStringName="LocalSqlServer" applicationName="/" name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
			</providers>
		</roleManager>

تم تعديل هذه المشاركة بواسطة EnigmaOX في 29 أكتوبر 2008 في 01:21

#7

اخ سفيان انا جربت سابقا فى محاولاتى الكود ده وبرضه مانفعش

اخ EnigmaOX انا عامل ريفرنس لأنى مستخدم MessegeBox خاصة بالويندوز

واللى انت قولته انا عامله بالفعل

بس شكل الدنيا عندى جالها تخلف

ولدي إليك وصيتي عهد الأسودْ

العز غايتنا نعيش لكي نسود

و عريننا في الأرض معروف الحدود

فاحم العرين و صنه عن عبث القرود

أظفارنا للمجد قد خُلقت فدى

و نيوبنا سُنَّت بأجساد العدى

و زئيرنا في الأرض مرهوب الصدى

نعلي على جثث الأعادي السؤددا

#8
اقتباس
خ EnigmaOX انا عامل ريفرنس لأنى مستخدم MessegeBox خاصة بالويندوز

لا يجوز استخدامها في Asp.net وابسط سبب انك اذا فتحت الصفحة من جهاز اخر فلن ترى الرسالة ابدا .

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

#9

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

انا بس عندي سؤال بسيط أخي العزيز ، لو شلت الكود من الايفينت بيعمل لوغ إن عادي بدون مشاكل ؟؟ لأني مش فاهم الجزء (Data Source=SCORPION-471FBD\DEVE)

هل المقصود بـ SCORPION-471fbd\DEVE إسم ال Instance تاعت ال SQL SERVER عندك ؟؟؟

لأني عادة افضل كلمة local للدلالة على LOCAL SQL INSTANCE

#10

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

كما أود اضافة امرا لا اعتقد انه يخفى عليك ، اذا كان الهدف فقط عمل Redirect عندما يكون ال User صحيح فانه يوجد خاصية لإداة الـ LOGin وهي

خاصية DestanationPageUrl حيث نضع فيها عنوان الصفحة التي نريد عمل Redirect عليها في حال تم التأكد من صحة الدخول...

#11

بســم الله الـرحمــن الرحيــم

اخي الكريم اعتذر عن اجاباتي السابقة لأني لم اكن مستوعبا الفكرة بالكامل وهي انك تريد تحويل المستخدم

الى صفحة محددة فقط اذا كان في مجموعة Administrators

والمشكلة هنا اخي العزيز أنك لن تستطيع كتابة الاوامر في ايفينت الـ Login1_Authenticate

والسبب أن (دوت نت) يجهز مسبقا هذا الايفينت لغايات التأكد من المستخدم

ولكنك تستطيع التعديل في عملية التحقق باضافة ايفينت اخر وكتابة الكود الذي تريده ، مثلا :

<asp:Login id=Login1 OnAuthenticate="FunctionName" runat="server">

المشكلة الاخرى أخي الكريم أنك تستخدم العنصر User.ISInRole

والعنصر User يستخدم للمستخدم الذي طلب الصفحة او عمل Request على الصفحة

وبما أن الصفحة لم يطلبها اي User لأنها صفحة LogIn فهذا يؤدي الى خلل

الخلاصة:

الحل الامثل لحالة المثال الذي لديك أن تستخدم الايفينت Login1_LoggingIn بدلا من Login1_Authenticate

وتضع الكود بالشكل التالي :

Protected Sub Login1_LoggingIn(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.LoginCancelEventArgs) Handles Login1.LoggingIn

If Roles.IsUserInRole(Login1.UserName, "Administrators") Then
   Response.Redirect("~/Photos.aspx")
Else
   Response.Redirect("~/Default.aspx")
End If

End Sub

وتقبل مني كل الحترام

#12

جزاك الله كل خير اخونا محمد

انا عملت كده برضه قبل ما اعرض الموضوع لكن الموضوع باء بالفشل اظاهر والله اعلم ان انا مش جاى على هواه :)

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

مره اخرى جُزيت خيرا على اهتمامك

ولدي إليك وصيتي عهد الأسودْ

العز غايتنا نعيش لكي نسود

و عريننا في الأرض معروف الحدود

فاحم العرين و صنه عن عبث القرود

أظفارنا للمجد قد خُلقت فدى

و نيوبنا سُنَّت بأجساد العدى

و زئيرنا في الأرض مرهوب الصدى

نعلي على جثث الأعادي السؤددا

#13

لا شكر على واجب اخي .... ومشكور على توضيحك للحل الذي وصلت اليه حتى تعم الفائدة على الجميع

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