Silverlight Web アプリケーションでホストされている Silverlight Web アプリケーション (RIA) に取り組んでいます。
背景: xaml ページの 1 つにスタックパネルがあります。私は自分の問題を単純化しようとしました。以下のようにダウンしています。
私のxamlページにはスタックパネルがあり、そのスタックパネルにはテキストブロックとボタンしかありません。xaml ページに移動すると、承認されたユーザーのみがテキストブロックの値を確認できます。ユーザーが許可されていない場合、テキストブロックに「許可されていない」というメッセージ (値の代わりに) を表示する予定です (ボタンも折りたたまれています。ボタンは表示しません)。
参考までに、この texblock の値は WCF サービスからのものであり、サービスでの承認のために適切な属性を作成しました。許可されていない場合、サービスからテキストブロックに価値はもたらされません。私が今行っているのは、UI のためだけです。一部のユーザーがブラウザーのアドレスバーからページの URL を入力しようとすると、許可されていないメッセージを表示したいと考えています。
これまでに行ったこと:: stackpanel に名前を付けました。テキストブロックに名前を付け、ボタンに名前を付けました。許可されている場合、テキスト ブロックのテキスト値をサービスの戻り値に設定しています。
許可されていない場合は、可視性とテキストを .cs ファイルから次のように変更しています。
textblock.Text="unauthorized";
buttonname.Visibility = Visibility.Collapsed;
問題: 問題は、私がアイデアを思いついたことです。:( スタックパネルの名前がある場合、stackpanelname.Visibility = Visibility.Collapsed; と言うことができます。
しかし、今はメッセージ (Textblock) を表示できません。子コントロールも親と一緒に折りたたまれています。スタックパネル (親コントロール) を折りたたむことはできますが、そのコントロールは 1 つだけ (子コントロールは 1 つまたは少数) しか表示されません。
解決策: これを入力しているときに解決策が得られました。テキスト ブロックを使用して、可視性を VISIBLE に設定し、テキストをメッセージとして設定できる新しいスタック パネルを使用できます。しかし、それが唯一の方法ですか?これらの状況をどのように処理しますか?
一般的に、私の質問が明確であると仮定すると、UI からこの種のシナリオでセキュリティを提供するための一般的なアプローチは何ですか。エラーページ/ログインページ、または同じページのユーザーへのメッセージ、またはその他のものにリダイレクトする予定ですか。推定では、バックエンド サービスには、承認のための属性とロジックがあります。