2012-03-12 4 views
1

ユーザーがオンラインのASP.NETサイトにログインするときに、ユーザーIDセッション変数)は、後で使用するためにローカルアプリケーション(c#アプリケーション)に保存されます。セッション変数(または1の値)をクライアントのローカルアプリケーションにドロップ

私が考えることのできる唯一の方法は、ユーザーがログインするときに、ユーザーIDがクライアントのマシン上のテキストファイルに保存されることです。しかし、これは理想的なソリューションではないでしょう。つまり、ローカルクライアントアプリケーションはファイルをチェックして内容が変更されていないことを確認する必要があります(クライアントアプリケーションが常に正しいユーザーIDを持つことが重要です)。

提案がありますか?

+0

どのようなタイプのC#アプリケーションのは? WinForms? – jadarnel27

+0

現時点ではまだコンソールアプリケーションです(これは初期の開発段階です)。これは必要に応じて変更することができます – jgok222

答えて

2

「ユーザーIDがクライアントのマシン上のテキストファイルに格納されている」と言うと、何らかのActiveXがない限り、Webアプリケーションを介してクライアントマシンにファイルを格納することはできません制御が関与する。

ユーザーIDを使用してクッキーをクライアントに完全に保存し、コンソールアプリケーションでアクセスすることはできますが、信頼性は高くありません。ユーザーはCookieを無効にすることができます。ブラウザはCookieを保存するために異なるフォルダを使用します。

私の選択は、現在のログインユーザーをデータベースに格納し、コンソールアプリケーションがWCFサービスを通じてその情報をポーリングするようにすることです。

データベースを使用したくない場合は、データベースとして機能するXMLファイルをサーバーに格納し、LINQ to XMLなどのWCFサービスを介してデータを取得するために使用します。

私たちが代わりにポーリングを使用すると、WCF二重サービスを使用してWebサービスが、ユーザーがログイン後にクライアントアプリケーションにその情報をプッシュ作ることができる情報を同一視することができる他のオプション。

+0

データベースを使用することを考えましたが、これは同じドローバックがあるので理想的な解決策ではありませんそれはリアルタイムフィードバックを与えていないそれは私が本当にこれをやりたい方法ではありませんが、それはどのようにこれが行われているように見える、webserviceで毎秒querryedされていない限り、あなたのコメントのおかげで – jgok222

関連する問題