سؤال

لدي مشكلة لا أستطيع أن أفهم في asp.net الهوية

تنطبق الخطوات التالية

  1. إنشاء اثنين فارغة مشاريع على شبكة الإنترنت ، لديهم أسماء :
    • WebApplication1
    • WebApplication2
  2. تثبيت حزمة "مايكروسوفت ASP.NET الهوية عينات 2.0.0-beta2"على كل مشروع
  3. إنشاء اثنين من قاعدة بيانات sql الأسماء التالية:
    • WebDatabase1
    • WebDatabase2
  4. إضافة مستخدم له اسم "User1"في WebApplication1
  5. إضافة مستخدم له اسم "User2"في WebApplication2
  6. تشغيل اثنين من المشاريع في بنفس الوقت.

مشكلتي هي عندما كنت تسجيل الدخول من قبل "User1"في "WebApplication1"

أجد WebApplication2 يتم تسجيل مع User1.

على الرغم من كل مشروع قاعدة بيانات منفصلة.

و أيضا لا User1 في WebApplication2.

ما هي المشكلة ؟

عذرا لغتي الإنجليزية سيئة!

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

المحلول

عندما يسجل المستخدم في الموقع ، مصادقة الوسيطة serializes في تسجيل معلومات المستخدم (بما في ذلك معرف واسم الأدوار) في المصادقة المشفرة الكعكة.في الزيارات اللاحقة إطار ببساطة بفك تشفير و يقرأ تلك المعلومات دون ضرب قاعدة البيانات.

بشكل افتراضي, نفس اسم ملف تعريف الارتباط المستخدمة في جميع أنحاء ASP.NET التطبيقات.ما تراه يحدث هو WebApp1 وضع ملف تعريف الارتباط ، WebApp2 قراءته.هذا هو لأنهم في نفس المجال (أو localhost) و الكوكيز هي مشتركة في جميع الموارد على نفس المجال.

حاول تغيير اسم ملف تعريف الارتباط في التطبيقات الخاصة بك...

app.UseCookieAuthentication(new CookieAuthenticationOptions
{
    // ...
    CookieName = "WebApp1AuthCookie"
});
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top