2

ASP.NET MVC アプリケーション用のカスタム セッション状態プロバイダーの実装に取り​​組んでいます。私の要件は、セッション データをxmlSQL サーバーのカスタム テーブルに保存することです。

既存のsql セッション状態プロバイダー(いくつかのメソッドをオーバーライドする) を使用できますか、または抽象クラスを実装してゼロから作成する必要がありますSessionStateStoreProviderBaseか?

4

2 に答える 2

5

はい、SQLサーバーまたはオラクルでもクラスプロバイダーセッションをカスタマイズできます。モデルのクラスから継承して、SessionStateStoreProviderBase から継承し、彼が送信する必要なメソッドを実装するだけです。ここで必要なメソッドのリストを確認してください。

例を使用する場合は、こちらを参照してください。この例では odbc を使用していますが、アクセス クラスを OdbcConnection から SqlConnection に、またはその逆に置き換えるだけです。

幸運を。

于 2014-07-30T13:10:14.340 に答える
-3

SQL サーバーを状態プロバイダーとして使用しないのはなぜですか? 構成で設定すると、これは自動的に行われ、SQL サーバーはデータをシリアル化されたバイナリ データとして保存し、効率的に取得しますか?

簡単に言えば、はい、できますが、車輪の再発明です。データを他の目的で使用したり、プロセス外で自分で編集したりする必要がありますか? これには別のプロセスを使用する傾向があります。これを行うには少し手間がかかりますが、後で見る必要がある場合は、sessiopn で設定するときに xml プロパティを somwhere に保存することをお勧めします。

XML ドキュメントをセッション オブジェクトにする

Session["MyCustomXml"] = mydoc;

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

次に、次の構成を使用して、SQL サーバーに保存します。

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

後で見る必要がある場合は、SessionId をファイル名として安全にディスクに保存し、一意に保ってください。

于 2012-03-15T13:03:14.593 に答える