سؤال

ما هي أفضل طريقة للحصول على تسجيل الدخول الحالي في المستخدم من خلال تطبيق Java الذي يعمل على JBOSS. لا يعمل System.GetProperty ("user.name") بيئة البيئة (user.name ") لأن JBoss يعمل كخدمة.

يتم تشغيل التطبيق على جهاز كمبيوتر محمول يعمل Windows XP. يعتمد التطبيق على الويب ويتم الوصول إليه باستخدام Internet Explorer بواسطة محدد تسجيل الدخول إلى مستخدم Windows. يمكن تسجيل الدخول إلى مستخدم Windows واحد فقط في وقت واحد. يحتاج التطبيق إلى معرفة أي المستخدم قام بتسجيل الدخول للقيام بقائمة قائمة على أساس الدور وميزات الأمان. لذلك يتم تشغيل كل من العميل (Internet Explorer) والخادم (JBOSS) على نفس الكمبيوتر المحمول. حاليًا ، نقوم بتحديد المستخدم الذي تم تسجيل الدخول إليه باستخدام قائمة المهام /V ثم تحليل الإخراج للبحث عن عمليات معينة والمستخدم الذي يقوم بتشغيلها. ومع ذلك ، يجب معرفة ما إذا كانت هناك طريقة أنظف للحصول على مستخدم Windows المسجلة.

هل كانت مفيدة؟

المحلول

لا أعتقد أن السؤال منطقي حقًا. قد يكون هناك رقم قام المستخدمون بتسجيل الدخول إلى المضيف - أو قد يكون هناك العديد من المستخدمين.

سأكون حذرًا إلى حد ما من التصميم الذي أراد حقًا معرفة ذلك على أي حال - لا ينبغي أن تكون تطبيقات الويب مهتمة حقًا بهذا النوع من الأشياء ، IMO. ماذا تحاول أن تفعل؟

نصائح أخرى

String uname = system.getenv ("user.name")

المرجعي: http://download.oracle.com/javase/tutorial/essential/environment/sysprop.html

هذا يفترض أنك قمت بتخزين متغير البيئة المسماة اسم المستخدم عندما قام المستخدم بتسجيل الدخول:

String username = System.getenv("USERNAME");

أو ، إذا كنت تريد مجموعة كاملة من متغيرات البيئة:

Map<String, String> envMap = System.getenv();

ثم تكرار من خلال الخريطة للحصول على متغير بيئة تقوم بتخزين اسم المستخدم.

Map<String, String> envMap = System.getenv();
int mapsize = envMap.size();
Iterator i = envMap.entrySet().iterator();
for (int j = 0; j < mapsize; j++) {
    Map.Entry entry = (Map.Entry) i.next();
    Object key = entry.getKey();
    Object value = entry.getValue();
}

استخدم مصادقة JAAS. يجب أن تكون قادرًا على استخدام NTLM على Windows ، لذلك لن يضطر المستخدم إلى القيام بأي عمل إضافي. بعد ذلك ، على الخادم ، يمكنك استخدام سياق الأمان للحصول على مدير المتصل.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top