سؤال

لديك شيء غريب يحدث هنا.

قمت ببناء موقع الويب ASP.NET MVC5، ولديه حسابات محلية تعمل بشكل جيد عبر هوية ASP.NET.

أنا الآن أحاول تمكين المصادقة الخارجية، ولكن لديك بعض الغرابة تحدث.

أنا متأكد من اتباع الخطوات الصحيحة. لدي هذا في Startup.Auth.cs:

giveacodicetagpre.

عندما ينقر المستخدم على الرابط إلى LOGON مع Google، تسمى طريقة externallogin:

giveacodicetagpre.

الذي تم التحقق منه عبر تصحيح الأخطاء يحصل على طريقة Executioneresult للفئة Chalengeresult:

giveacodicetagpre.

ومع ذلك، في المتصفح، لا يحدث شيء. أنا فقط أحصل على صفحة فارغة حيث أتوقع إعادة توجيه إلى صفحة Google Signin.

لا توجد أخطاء تم الإبلاغ عنها على الإطلاق.

الشيء المضحك الآخر هو أنني حاولت إنشاء تطبيق MVC5 آخر، لكنني أحصل على "مرجع كائن لم يتم تعيينه على مثيل كائن" منبثق في VS2013، ويتم فقد المشروع الناتج على حساب تحكم الحساب الذي عادة ما يكون هناك بشكل افتراضي.

لقد قمت بإصلاح تثبيت VS2013، لقد قمت بإعادة تثبيت التحديث 1، وقد قمت أيضا بتحديث جميع حزم Nuget في الحل.

لقد نفدت من الأفكار من أين أذهب بعد ذلك.

تحديث 1 التفكير في أن هذا قد يرتبط بجهاز الكمبيوتر الخاص بي، لقد قمت بنشر موقع الويب على أزور، وما زالت المشكلة لا تزال قائمة. هل هذا يعني أنه يمكن أن يرتبط بتجميع مفقود، ولا يتم الإبلاغ عنه بشكل صحيح؟ لقد قمت بتشغيل Fusionlog، لكنني أرى أي فشل ملزم.

غزل VM جديد مع تثبيت نظيف ل Windows 8 و VS2013 لمعرفة ما إذا كان يمكنني الحصول على مشروع جديد يعمل هناك.

تحديث 2 حسنا، ركض جولة أخرى من "الشبكة" التقاط، وعندما يختار المستخدم المزود الخارجي، فإنه يقوم بنشر الإجراء الخارجي، ولكن الرد هو 401 غير مصرح به. ماذا يمكن أن تسبب هذا؟

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

المحلول

حسنا،

أحسب ما كان (الجزء المهم) من هذه المسألة.

أولا، ما زلت لا أعرف السبب عندما أقوم بإنشاء مشروع MVC لا أحصل على فئة حساب حساب سقالة.

ومع ذلك، يبدو أن مشكلتي هي أن زر تسجيل الدخول الخاص بي يمر "Google" بدلا من "Google" كوفر.

على محمل الجد!؟أنا مندهش قليلا أن الغلاف سوف يهم باسم المزود، ولكن هناك تذهب.

نصائح أخرى

هذا ليس هو الحل على سؤالك، لكنه يستجيب مشكلة مماثلة للغاية

إذا كان لديك Owin 2.0 وأنت ترحيل إلى 2.1

_ExternalloginsLostPartial تحتاج إلى تغيير من هذا:

giveacodicetagpre.

إلى هذا

giveacodicetagpre.

الشيء الوحيد الذي يتغير هو اسم الزر ولكن يمكن أن يكسر رأسك مثل الألغام وكلفتني يومين عمل للعثور على المشكلة.

ربما هذا موضح في إصدار Owin الجديد، إن لم يكن يجب أن يكون شيئا لتحديد العواصم.

لقد ركضت للتو في نفس المشكلة باستخدام خادم ASP.NET Webapi الخاص بي.كنت أبعز المصادقة الصحيحة في طريقة التحدي ولكن لا يزال يحصل على صفحة فارغة.

اتضح أن المشكلة كانت النظام الذي أضفته مقدمي OAuth في خط أنابيب Owin عند بدء التشغيل. تقريبا أمر عملي:

giveacodicetagpre.

سابقا كنت أضيف أساليب USECORS + UseWebapi قبل استخدام طريقة الاستخدام.

لقد وجدت هذا المنشور مفيدا جدا: http://coding.abel.nu06 / الفهم - خط أنابيب Owin-Authentication-مصادقة خارجية /

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