2012-02-23 23 views
0

私はC#を使用してASP MVCプロジェクトに取り組んでいます。ASP MVC Webサイトに共有データはどこに保存できますか?

私の質問は基本的には、あなたのウェブサイト上の特定の部分に得られるデータを保存するのに最適な場所です。例えば、ユーザーのSignOnをサイトに処理してからウェブサイトの他の部分にあるそのデータにアクセスしたり、モデルレイヤのクラスについて言います。

データが単に文字列のリストであるとすれば、それはリストとして格納するか、クラスでラップする方がよいでしょうか?

ありがとうございました。

答えて

2

データがどれくらいの期間必要かによって異なります。あなたが唯一のセッションごとに、それを保存したい場合は、コントローラ

  • TempDataを使用することができ、単一の要求ユーザーは、それが消えてしまい、サイトにログオン(別名次回の場合

    1. )あなたが使用することができますSession

    2. 永遠にそれを保持したい場合は、データベースや何らかの種類のファイルなどのオフラインストレージを使用する必要があります。

    幸運。

  • +0

    このデータの範囲(要求対セッション)についてはっきりしてから、shenkuのアドバイスに従ってください。私の唯一の追加機能は、memcached、redis、appfabricなどのメモリキャッシュを考慮して、サーバ間で物事を共有したい場合です。 – hoserdude

    0

    私はあなたがセッションにそうストアそれらURL Session variables in ASP.NET MVC で同様の質問がここで前に頼まれたあなたに与えられた 部分で取得いくつかのデータを保存するのに最適な場所です

    0

    を考えます例えば、ウェブサイトの SignOnを処理して、そのデータにアクセスしたい場合は、 というウェブサイトの別の部分にある レイヤのクラスにアクセスしたいとします。

    データベースは、このような情報を保存するための優れた候補です。ユーザー固有のもので、非常に長く続く必要がない場合はクッキーです。またはサーバー上のファイル。またはクラウド上。または、企業のイントラネットFTPサーバーにデータを格納するC++アンマネージWin32関数の周りにP/Invokeラッパーを記述します。あなたが持つ可能性は無限に近いです。あなたが一番気持ち良いものを選んでください。

    そして、私は明示的にではありません。ではなく、他のユーザーがあなたに提案するかもしれないセッションを使用するように提案しています。

    +0

    セッションが「合理的に」回避できないことがあります。私が使用する唯一の場所は、ユーザーがいくつかのデータ(フォームなど)を提出しようとしたがログインしていない場合です。サインアップ/ログインページにリダイレクトしてから、リダイレクト。残っている "一時的な"データをdbに保存する(例えば、保存する、取り出す、削除する)方法は他にあります。 – RPM1984

    +0

    @ RPM1984ではもちろん、セッションを避けることができます。私はいつもそれを避けています。限り、あなたが記述しているシナリオは、よく、クッキー、HTML 5のsessionStorageなど、それを達成するための他の多くの方法があります... –

    +0

    私はクッキーを使用することができると思いますが、それはまだ "セッション"クライアント-側。 HTML5 DOMストレージについては、どのように機能しますか?フォームからサインアップページにフォームデータを取得したらどうしたらいいですか? POST、GET(ログインページへのリダイレクト)、POST(ログイン)、別のGET(元のページに戻る)の順であることを覚えておいてください。加えてクッキーを使って、あなたはそれを明確に破壊しなければならない。少なくともTempDataでは、読み込み後に自動的に削除されます。とにかく、私たちは一日中続きます。私はセッションであなたの気持ちを知っています。 :) – RPM1984

    1

    私は無礼ですが、データベースに保存することはできませんか?

    「共有」とはどういう意味ですか?誰によって共有され、異なるページで同じユーザーですか?それとも別のユーザーですか?

    後者→DBの場合。

    前者がTempDataの場合、または「認証」データについて話している場合は、それをフォーム認証チケットに保存します(フォーム認証を前提とします)。

    関連する問題