سؤال

أنا أعمل على تنفيذ مزود حالة الجلسة المخصصة بالنسبة لي ASP.NET تطبيق مفك.الشرط الخاص بي هو أنني يجب تخزين بيانات الجلسة على النحو التالي xml في جدول مخصص في سكل سيرفر.

هل يمكنني استخدام القائمة مزود الدولة جلسة سكل (تجاوز بعض الأساليب) أو لقد لخلق من الصفر من خلال تنفيذ الطبقة مجردة SessionStateStoreProviderBase?

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

المحلول

لماذا لا تستخدم فقط سكل سيرفر كمزود الدولة الخاص بك?يمكنك تعيينه في التكوين وهذا يحدث تلقائيا, ثم سكل سيرفر سيتم تخزين البيانات كبيانات ثنائية متسلسلة واسترجاعها بكفاءة?

الإجابة المختصرة هي نعم ، يمكنك ذلك ، لكنها تعيد اختراع العجلة.هل تحتاج إلى استخدام البيانات لأي شيء آخر أو تحريرها بنفسك خارج العملية?سأكون أميل إلى استخدام عملية منفصلة لهذا الغرض.وأنت تسير لخلق قليلا من العمل لنفسك القيام بذلك ، وسوف يكون من الأفضل أن مجرد حفظ خاصية شمل سوموير عند تعيينه في سيسيوبن إذا كنت بحاجة إلى النظر في وقت لاحق.

اجعل مستند شمل كائن جلسة عمل

Session["MyCustomXml"] = mydoc;

var mydoc = Session["MyCustomXml"] as XmlDocument;

ثم استخدم التكوين التالي بحيث يتم تخزينه في سكل سيرفر.

<sessionState 
            mode="SQLServer"
            sqlConnectionString="data source=127.0.0.1;user id=<username>;password=<strongpassword>"
            cookieless="false" 
            timeout="20" 
    />

إذا كنت بحاجة إلى النظر في وقت لاحق ، مجرد حفظه على القرص سوموهير بأمان مع سيسيونيد كاسم الملف لإبقائه فريدة من نوعها.

نصائح أخرى

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

إذا كنت تريد استخدام مثال ، راجع هنا.هذا المثال باستخدام أودبك ولكن ببساطة استبدال لفئة الوصول كما أودبكونكتيون إلى سكلكونكتيون والعكس بالعكس.

حظا سعيدا.

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