2011-01-20 17 views
2

Silverlightアプリケーションでは、周辺デバイス(具体的にはスキャナ)にアクセスする必要があります。この要件では、SilverlightをOOBアプリケーションとして使用することが強制されています。最近まで、私たちはSilverlightアプリケーションを.aspxページの中にオンラインでホスティングしてきました。 URLを通じてこのアプリケーションにパラメータを渡しました(つまり、http://testsite.com/default.aspx?username=User&password=UserPassword&screen=Screen)。 SLアプリはユーザー名とパスワードを検証し、認証されると、渡された「スクリーン」を開きます。Silverlight OOBアプリケーションへの引数の受け渡し

上記のSLアプリケーションを上記の(OOBとして)上に描いたのと同様に機能させるには、どのようなオプションが必要ですか?あなたがOOBを実行するには、Silverlightアプリケーションをインストールすると、それはそれは実際には「ホスト」OOBアプリケーションのindex.htmページを持って分離ストレージ内のディレクトリを作成します

-Tom

+0

私はあなたが真剣にそのようなURLにパスワードを入れていないことを本当に願っています... –

+0

いいえ、私たちはアプリケーションに渡されたパラメータを難読化し、暗号化します。あなたが良い提案をしていないかぎり? – arctek

答えて

1

URLを介してデータを渡すのではなく、このデータを要求するために起動時にアプリケーションからWebサービスにコールバックすることができます。または隔離ストレージに保管してください(ただし、隔離保管は安全ではありません)。これを起動時に使用してください。

OOBアプリケーションに開始パラメータを渡す別の方法があったとしても、ユーザーがこれを呼び出す方法を教えてください。何らかのリンク経由でですか?カスタムショートカットを作成しますか?ユーザーが[スタート]メニューまたはデスクトップのみでOOBアプリケーションを起動するため、これらのケースで実際に使用できるコンテキストが何であるかを理解していません。

+0

Silverlight画面を開く会計アプリケーションがあります。 SLアプリに渡す必要のあるパラメータは、設定ファイルに格納されています(各企業には、他の認証情報の中に独自のCorpIDとトークンがあります)。 SL画面に対応するメニュー項目をクリックすると、エンドユーザーが手動で「トークン」と「企業ID」を入力することなく、アプリケーションがシームレスに開くようにする必要があります。 – arctek

+1

私は見る - それはかなり簡単にする必要があります。インストール時(アプリケーションがInstallStateChangedイベントを取得したとき、またはApplication.Current.Install()を呼び出したとき)には、使用しているCorpIDとトークンを取ることができます(おそらく、URLやInitParamsから問題)を作成し、Isolated Storgeに書き込みます。あなたはそれを暗号化したいかもしれません - あなたの呼び出し。次に、アプリケーションが実行されると、Application.IsRunninOutOfBrowserをチェックし、trueの場合はURL/InitParamsの代わりにIso Storeの値を調べます。 –

+0

開かなければならない「スクリーン」をどのように通過するのでしょうか?各メニュー項目は異なる画面に対応しています。ユーザーが "About"メニュー項目をクリックすると、Silverlightの "About"画面を開く必要があります。 – arctek

0

おかげで、 。 (これはここに記載されています:http://debuggingblog.com/wp/2009/07/17/silverlight-3-outofbrowseroob-explained-and-how-to-host-any-xap-package-by-modifying-the-metadata/)。必要な作業を行う1つの方法は、そのindex.htmページを編集し、その中のパラメータを渡すことです。もちろん、あなたはそのページを編集する方法を理解する必要があります(もしあなたがsetup.exeを持っていなければ自動的にするのは難しいでしょう)。ユーザーに自分のユーザーID /パスワードを要求するだけの方がいいでしょうか?それを一度だけ行う必要があります。その後、(おそらく暗号化されているか、少なくともいくつかの方法では難読化されている)いくつかのよく知られた場所に設定ファイルを格納することができます。

+0

このように、OOBアプリケーションキャッシュの実装の詳細に頼ることは避けてください。私たち(Silverlightチーム)は理由のためにこの情報を文書化していません。変更される可能性があるからです。私は誰もがこれがブラックボックスだと仮定し、それを混乱させないようアドバイスするだろう。 –

+1

良い点。しかし、より良い提案がありますか? OOB Silverlightアプリケーションにコマンドラインパラメータを渡すためのより良い/サポートされた方法がありますか? –

0

Silverlight 4を使用している場合は、Windowsレジストリに値を格納することもできます。

関連する問題