私はsilverlight WebアプリケーションにホストされているSilverlight Webアプリケーション(RIA)に取り組んでいます。silverlightのstackpanel可視性編集
背景:xamlページの1つにスタックパネルがあります。私は自分の問題を単純化しようとした。
My xamlページにはスタックパネルがあり、そのスタックパネルにはテキストブロックとボタンしかありません。 xamlページにナビゲートすると、承認されたユーザーだけがテキストブロック内の値を表示できます。ユーザーが承認されていない場合、私はテキストブロックに値の代わりに "承認されていない"メッセージを表示することを計画しています(ボタンも表示されません)。
FYIのこの値はWCFサービス私はそのサービスの承認のための適切な属性を作っています。権限がない場合、値はサービスからのテキストブロックには到着しません。私が今やっていることは、UIのためだけです。ブラウザのアドレスバーからページのURLを入力しようとすると、不正なメッセージが表示されます。
私はこれまで何をしていますか::私はスタックパネルに名前を与えました。私はテキストブロックに名前を付け、ボタンに名前を付けました。許可されている場合は、テキストブロックのテキスト値をサービス戻り値に設定しています。
権限がない場合は、表示とテキストを.csファイルから変更しています。
textblock.Text="unauthorized";
buttonname.Visibility = Visibility.Collapsed;
問題:問題が発生しました。 :(私がスタックパネルの名前を持っていたら、 stackpanelname.Visibility = Visibility.Collapsed;
私のメッセージ(Textblock)は表示できませんが、cozの子コントロールも親と一緒に折りたたまれています。私はスタックパネル(親コントロール)を折りたたむことができますが、1つのコントロール(1つの子コントロール、または少数)だけが表示されます。
ソリューション:私はこれをタイプしているので、新しいスタックパネル用のテキストブロックがあり、私はVISIBLEとテキストをメッセージとして設定できますが、それは唯一の方法ですか?
一般的に、私の質問を前提としています明らかですこのようなシナリオでは、UIからセキュリティを提供するための一般的なアプローチは何ですか。それはエラーページ/ログインページへのリダイレクト、または同じページまたは他のもののユーザーへのメッセージへのリダイレクトになります。バックエンドサービスを推定することは、認証のための属性とロジックを持つことになります。