Реализация пользовательской сессии поставщика государства в ASP.NET MVC

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

Вопрос

Я работаю над реализацией пользовательского поставщика государственного сеанса для моего приложения ASP.NET MVC.Мое требование заключается в том, чтобы сохранить данные сеанса как xml в пользовательской таблице на SQL Server.

Могу ли я использовать существующие поставщику состояний сеанса SQL SQL (переопределение некоторых методов) или я для создания с нуля, реализуя генеракодицет абстрактного класса?

Это было полезно?

Решение

Почему вы не просто используете SQL Server в качестве поставщика вашего государства?Вы можете установить его на конфигурации, и это происходит автоматически, то SQL Server будет хранить данные в виде сериализованных двоичных данных и эффективно его получить?

Короткий ответ - да, вы можете, но он повторно изобретает колесо.Вам нужно использовать данные для чего-либо еще или редактировать его вне процесса?Я был бы склонен использовать отдельный процесс для этого.Вы собираетесь создать немного работы для себя, и вам было бы лучше сохранить свойство XML Somewhere, когда вы устанавливаете его в Sessiopn, если вам нужно посмотреть на него позже.

Сделайте свой XML-документ объектом сеанса

Session["MyCustomXml"] = mydoc;

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

Затем используйте следующий конфигурацию, поэтому он хранится на SQL Server.

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

Если вам нужно посмотреть позже, просто сохраните его на диск Somewhead, безопасно с SessionID в качестве имени файла, чтобы сохранить его уникальным.

Другие советы

Да, вы можете настроить сеанс провайдера класса даже с SQL Server или Oracle.Просто наследующуюся от класса в вашей модели, наследующуюся из SessionStateStoreProviderBase и реализует необходимые методы, которые он отправляет, проверьте список обязательных методов здесь .

Если вы хотите использовать пример, см. Вот здесь . Этот пример с использованием ODBC, но просто замените для класса доступа в виде ODBCConnection к SQLConnection и наоборот.

Удачи.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top