0

同じ動作の ASP.NET ページがいくつかあります。

  1. 各ページには独自のコンテンツ (フォームや表など) があります。
  2. 各ページは、メニュー フレームを表示する 2 つの Web ユーザー コントロール ファイルにリンクしています。
  3. ではPage_Init、ユーザーがコンテンツを表示するためのアクセス権を持っているかどうかがチェックされます。アクセス権がない場合、ページにはメッセージが表示され、残りのコンテンツは表示されません。メニューフレームは表示されたままです。

私は ASP.NET にまったく慣れていないので<div>、アクセス権に基づいてコンテンツのタグの可視性を操作することしか考えられません。他に働き方があれば教えていただきたいです。コードビハインドにVBを使用しています。よろしくおねがいします...

4

2 に答える 2

1

セクションを でラップしてPlaceHolder、単純にオフにすることができます。次に例を示します。

<asp:PlaceHolder ID="AuthUserStuff" runat="server">
    <div>
        ...
    </div>
</asp:PlaceHolder>

コードビハインドでは、次のようなことを簡単に行うことができます。

AuthUserStuff.Visible = User.IsAuthenticated;

PlaceHolder非表示の場合、コンテンツがクライアントにレンダリングされないという追加の利点があります。

于 2013-04-10T11:24:54.507 に答える
0

可視性を制御する div タグを使用するのは良くありません。つまり、ユーザーは「ソースを表示」するだけですべてのコンテンツが表示されます。

代わりに、使用しているコントロールにコンテンツを追加したり (または @Lloyd が説明するコントロールを使用したり) 、カスタム 403 ページ (アクセスなし) にリダイレクトしたりしないでください。

于 2013-04-10T11:24:51.350 に答える