سؤال

أنا أقدم تطبيق Facebook، وأريد فقط السماح بالوصول إلى طرق عرض معينة إذا كان الزائر مخول من خلال Facebook. يجب أن يكون هذا مهمة بسيطة للغاية، وفكرت هو أنه كان، حتى جربته في IE. الكود التالي يعمل بشكل جيد في Chrome و Safari. أريد استخدام مصادقة النماذج، وبالتالي قمت بتعيين giveacodicetagpre.

في web.config. سيؤدي ذلك إلى توجيه الزائر إلى ActionResult التالي عند إدخال تطبيقي: giveacodicetagpre.

ثم يتم إعادة توجيه المستخدم إلى صفحة Facebook، وسيتم إرسال رمز الوصول إلى My Oauth ActionResult: giveacodicetagpre.

ما أحاول القيام به هنا، هو أولا التحقق إذا كان الرمز المميز أعود من إعادة التوجيه ساري المفعول. إذا كان الأمر كذلك، فأنا أسحب بعض البيانات عن الزائر، مثل FacebookID والاسم. ثم أضعها مع قاعدة البيانات الخاصة بي، لمعرفة ما إذا كان المستخدم موجودا بالفعل، وإذا لم يكن كذلك، فأنا أخلق واحدة. أنا أيضا تعيين دور للمستخدم في مزود الدور المخصص الخاص بي، لكن كان لدي مشكلة حلقة لانهائية قبل هذا. ثم قمت بتعيين giveacodicetagpre.

وأنا أفترض أن هذا هو جوهر تتبع نشعر الزائر المعتمد أم لا. بقدر ما أفهم، عندما يحاول الزائر استدعاء ActionResult الذي يتطلب [تفويض]، فسوف يتحقق النظام من ملف تعريف الارتباط هذا.

حسنا، هل يمكن لشخص ما يرجى توضيح سبب عمل الرمز أعلاه في Chrome / Safari، ولكن يبقي حلقات من خلال تسجيل الدخول ثم OAUTH بلا حدود في IE؟

تطبيقي يستخدم MVC 3، EF رمز أولا وفيسبوك C # SDK 5.0.25

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

المحلول

Okay, so i figured out that the problem was triggered by the [Authorize] annotation, as expected. The Facebook SDK has a [CanvasAuthorize] annotation, and when i switch to using this, IE works fine and does not login forever.

Before this, i tried using cookieless authentication, but IE still didn't want to play along.

As far as i have figured out, the problem occurs because Facebook apps are inside an IFrame. This supposedly screws something up with cookies and trust. If someone knows why this is, i would appreciate to hear about it.

Also, if anyone knows how to use and maintain roles, easily, with this [CanvasAuthorize], i would be glad to know.

نصائح أخرى

I know this seems obvious but are you sure cookies aren't disabled in IE? There is an option to disable cookies in developer tools.

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