الانتقال إلى المحتوى
View in the app

A better way to browse. Learn more.

مجموعة مستخدمي أوراكل العربية

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

إستفسار مهم عن صفحة Login

Featured Replies

بتاريخ:

حياكم الله جميعا
ارجو المساعدة في كيفية عمل صفحة login

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

الوصول الى صفحات معينة ليس له صلاحية الوصول اليها؟؟

المعطيات
jdeveloper10g
المستخدم وكلمة المرور ومستوى الحماية مخزونه في جدول واحد في قاعدة البيانات
مثلاً
المستخدم User30 عند عمل login وتم التحقق منه يذهب الى الصفحة الرئيسية
لكن مثلاً الزر Edit لا يتفعل(Disable) لان مستوى الحماية حقة لايسمح لة بعمل Edit

كيف أستطيع التحقق من المستخدم
ثم اجلب مستوى الحماية التابع لة من viewحقة
ثم ابني baking beans على اساس مستوى الحماية تقوم بعمل Disable للزر Edit او بعض الازرار


عذرا على الاطاله

بتاريخ:

السلام عليكم

كيف أستطيع التحقق من المستخدم


الموضوع بسيط فبعد عمل لوجين للمستخدم يتم تخزين جمع بياناته فى Managed bean وتكون Session scope (الاى دى الخاص بالمستخدم ، اسم المستخدم ؛صلاحياته (فاريابل من نوع (List)) اقصد بالصلاحات تغيير الداتا او صلاحات الادمن وما الى ذلك وليكن اسم الكلاس دى Userdata مثلا

ثم اجلب مستوى الحماية التابع لة من viewحقة
ثم ابني baking beans على اساس مستوى الحماية تقوم بعمل Disable للزر Edit او بعض الازرار


بالنسبه لموضوع الصلاحيات لكل مستخدم سيتم تخزينها فى كلاس الجافا اللى قلناها وبعدين بتعمل كلاس تانيه فيها ميثود بترجع Boolean فكرتها بالظبط ان بنديها صلاحيات معينه ك argument (وهى هنا الصلاحيات المطلوبه عشان المستخدم يشوف البوتون ده او حتى يبقى ليه (Enable)وفى الBody الخاص بالميثود بنستدعى صلاحيات المستخدم اللى عمل لوجين من كلاس Userdata وبنقارن بينها وبين الصلاحيات اللى اديناها للميثود لو لقى الصلاحيات اللى عطيناها او اى واحده من الصلاحيات دى عشان يشوف البوتون موجوده فى كلاس Userdata (معنى كده ان المستخدم له الصلاحيه انه يشوف البوتون ده) الميثود حترجع True لو ملقاش اى صلاحيه من اللى عطينهاله فى الميثود كArgument موجوده فى كلاس الUserData الميثود حترجع False وعلى البوتون نفسه فى حقل الRender او حتى فى الDisable اكتب الصلاحيه او الصلاحيات المطلوبه عشان يشوف البوتون

مثال:


مثلا عندك بوتون عرض وبوتون تعديل View,Edit

فى بوتون العرض اكتب كده فى حقل الRender

#{userHasPriv['MODIFY_DATA,ADMIN']}



UserHasPrivs اسم الباكينج بين اللى فيها الميثود اللى بترجع بولاين
وطبعا المستخدم اللى عمل اللوجين لو عنده اى صلاحيه من دول (MODIFY_DATA,ADMIN) حشوف البوتون او حيكون البوتون Enable


اما على بوتون تعديل فى حقل الRender اكتب كده


#{userHasPriv['ADMIN']}



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

بتاريخ:
  • كاتب الموضوع

أخت هالة
جزاك الله الف خير

فهمت 70% من الاستفسار

لكن بقى كيف أخزن جميع بيانات المستخدم في managed beans حتى اقدر اتعامل معها

هل manag beans تبنى في ال Application modul

بتاريخ:
هل manag beans تبنى في ال Application modul


الmanaged bean عباره عن كلاس جافا فى طبقه الفيو وليس الموديل قم بعمل هذه الكلاس فى الفيو كنترولار وعمل جميع الفارايبلز اللازمه فيها وعملSet and get لكل فاريابل ثم نسجلها فى الfaces-config.xml فى تاب الoverview اضغط على New managed bean ثم حدد اسمها واسم الكلاس والسكوب (طبعا فى هذه الحاله السكوب الخاص بها حيكون session) وبعد عمل ميثود للوجين حنخلى الميثود دى ترجع بيانات المستخدم ونخزنها فى الكلاس كالتالى

public String loginAction() {
  
	OperationBinding login = ADFUtils.findOperation("authenticateUser");
	Map m = (Map)login.execute();
  
	if(!m.isEmpty()){
  
		String userName = (String)m.get("UserName");
		List<String> userPrivileges = (List<String>)m.get("Privileges");
  
		UserData userData = (UserData)JSFUtils.resolveExpression("#{UserData}");  
		userData.setLoggedIn(Boolean.TRUE);
		userData.setUserName(userName);
		userData.setUserPrivileges(userPrivileges);
  
		return "success";
}else{
loginMessage.setMessage(LOGIN_MSG);
return null;
	}

بتاريخ:

اخت هاله

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

وشكراً

ياسر

بتاريخ:

نوثق الطلب لاختنا هاله ليكون موضوع جميل الى امام

  • بعد 2 أسابيع...
بتاريخ:
  • كاتب الموضوع

اخت/هالة
الله يجزيك الخير انت وكل الزملاء

عندما ابني الmanaged bean لا تظهر الدوال التي بداخلها .فقط تظهر اسم الmanaged bean كمتغير xyz

وعندما اعمل مثلاً
#{my_managed.Has_Priv['Admin']}
يطلع Error


لكنى عندما استفسرت في الاوراكل اخبرونى بأستخدام Adf scurity هي مصدر قوة لل jdeveloper10.1.3.2 والاصدارات التي فوقها


ياريت اخت هالة تقديم توضيح مصور لاستخدام Adf scurity

وشكرا

  • بعد 2 أسابيع...
  • بعد 1 شهر...
بتاريخ:

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

اولا: بنعمل فيو اوبجكت ريد اونلى مبنى على انتيتى المستخدمين وانتيتى الخاصه بالجروبس المحدده للبرنامج (موظف, مدير,فنى) بحيث بياخد الفيو ده اتنين بيند فاريابل طبعا اسم المستخدم وكلمه المرور وبيجيب اسم المستخدم بالكامل والاى دى الخاص به وكمان الاى دى للجروب اللى بينتمى ليها (عشان نحدد صلاحياته تبعا للجروب )وبنيجى فى الابليكيشن موديول بنستدعى الفيو اوبجكت ده اللى احنا سميناه مثلا هنا UsersData وحكتب شرح كل سطر فى الكود الخاص بالميثود





	

public Map AuthenticateUser(String LoginUserName,String LoginPassword){

Map UserData=new HashMap();


ViewObject User=getUsersData();
 
User.setNamedWhereClauseParam("userLogin",LoginUserName);

User.setNamedWhereClauseParam("userPassword",LoginPassword);


User.executeQuery();

if (User.getEstimatedRowCount()>0){
Row userrow=User.first();

String UserName=(String)userrow.getAttribute("UserName");

UserData.put("UserName",UserName);

  



كمان ممكن نعمل امتداد للكود ده بحيث ان احنا نطلع الصلاحيات (Privileges)للمستخدم ونخزنها برضه فى الماب

ثانياً: بنستدعى الميثود دى فى المانيجد بين وبنقولها تاخد الArguments الخاصه بيها من حقل اسم المستخدم وكلمه المرور فى صفحه اللوجين والكود بتاع المثود دى موجود فوق

عندما ابني الmanaged bean لا تظهر الدوال التي بداخلها .فقط تظهر اسم الmanaged bean كمتغير xyz


لم افهم ماذا تقصد اقره فى الDeveloper guide عن كيفيه عمل Managed Bean وتسجيلها فى ال faces-config.xml

وعندما اعمل مثلاً
#{my_managed.Has_Priv['Admin']}
يطلع Error


اكيد فى ميت سبب ممكن يطلع ايرور فين كود الكلاس اللى بتقارن فيها بين صلاحيات المستخدم الفعليه والصلاحيات المطلوبه عشان يشوف البوتون ده؟؟؟ :)

بالنسبه لل ADF Security أو JAAS

دى بتستخدم فى الابليكيشنات الكبيره وفكرتها باختصار انك بتحدد على مستوى البرنامج نفسه وليس فى قواعد البيانات كل ال roles اللى عندك مثلا (مدير -موظف- مطور )وتحدد المستخدمين فى كل role وكمان الباسورد بتاعتهم وكمان بتحدد صفحه اللوجين وصفحه الايرور اللى حيحصل للمستخدم ريدايركت عليها اذا كانت بياناته خطاوكمان بتحدد حاجه اسمها Security Constraints لو عندك صفحات خاصه بالادمين وصفحات للمستخدم العادى وده تابع لل Authorization واللينكات اللى فاتت بتشرح الطريقه بالظبط حاول تجربها

  • بعد 2 أسابيع...
بتاريخ:

Dear My Friend


this will help you Login Form

Many Thanks

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية

Account

Navigation

البحث

إعداد إشعارات المتصفح الفورية

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.