كيف يمكنني معرفة الحساب الذي يحاول الوصول إلى خدمة ويب ASP.NET؟

StackOverflow https://stackoverflow.com/questions/1155660

سؤال

أحصل على 401 (تم رفض الوصول) استدعاء طريقة على خدمة ويب داخلية. أنا أسميها من صفحة ASP.NET على شركة إنترانت. لقد قمت بفحص كل التكوين ويجب استخدام أمان متكامل مع حساب لديه حق الوصول إلى تلك الخدمة، لكنني أحاول معرفة كيفية تأكيد الحساب الذي يتصل به. وبعد لسوء الحظ لا يمكن تصحيح التعليمات البرمجية على شبكة الإنتاج. وبعد في بيئة ديفنا كل شيء يعمل بشكل جيد. أعلم أنه يجب أن يكون هناك اختلاف في الإعدادات، لكنني في حيرة مع من أين أبدأ. أي توصيات؟

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

المحلول

هل نظرت في سجلات IIS؟

نصائح أخرى

أود أيضا أن أوصي بالنظر في سجل الأحداث الأمنية على خادم فشل المصادقة. يجب أن تجد بصمة محاولة التفويض الفاشلة هنا. يتم تحذيرها - ليس من غير المعتاد الحصول على 10s من الأحداث الأمنية ثانية، لذلك من الناحية المثالية تحتاج إلى الوصول إلى سجل الأحداث مع فشل الطلبات.

إذا لم تحدد بيانات الاعتماد التي تستخدمها في صفحة ASP.NET الخاصة بك عند إنشاء إنشاء خدمة الويب، فأنا أصدق أنها افتراضيا nt_authority Anonymous..

إذا كنت تستخدم system.net.crededialcache، فإن خدمة الويب الخاصة بك تحتاج إلى أن تكون في مجال موثوق بها، حيث يمكن الوصول إليها عبر HTTPS واستخدام إما NTLM أو Kerberos أو Digest Auth وإلا فلن تمرير بيانات الاعتماد من ذاكرة التخزين المؤقت.

http://msdn.microsoft.com/en-us/library/system.net.crededialcache.defaultcredentyss.aspx. http://msdn.microsoft.com/en-us/library/system.net.credentialcache.defaultworkcredentyss.aspx. http://msdn.microsoft.com/en-us/library/system.net.crededialcache.defaultcredentyss.aspx.

ربما يستخدم خادم الإنتاج مستخدم مختلف عن تجمع التطبيقات من بيئة Dev الخاصة بك؟ قضيت يوما في يوم واحد في النهاية. سيكون خيار آخر هو (عدم وجود) الانتحال في Web.config

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