0

組み込みのログインを使用して ASP.NET MVC アプリケーションを作成しています。このページには、ユーザーがログインせずにアクセスできる 2 つのメニュー項目もあります。

私の要件は、ユーザーがログインするまでメニュー項目にアクセスできる必要があるため、メニュー項目を非表示にするか、ユーザーがログインするまでクリックを無効にする必要があることです。

どうやってやるの?

4

1 に答える 1

0

Razor ビューを使用している場合は、次のようなものを使用できます。

@if(Request.IsAuthenticated) {
    <span><a href="#">@user.ShortName</a></span>
    <text> 
    @Html.ActionLink("My Profile", "profile", "account") |
    @Html.ActionLink("Help", "index", "help") |
    @Html.ActionLink("Log Off", "LogOff", "Account")
    </text>
}

@if {...} ブロック内のコードは、ユーザーがログインしている場合に表示されるものです。

Web フォーム (.aspx) ビュー用の同等のコードがあり、さまざまな方法で実行できます。

1 つの方法は、コード ビハインドから作業し、サーバー コントロールを操作することです。したがって、.aspx ページは次のようになります。

<asp:HyperLink ID="lnkMyProfile" Text="My Profile" NavigateUrl="/myprofile"></asp:HyperLink>

次に、コード ビハインド (.aspx.cs など) で:

if(User.Identity.IsAuthenticated) {
  lnkMyProfile.Visible = true;
} else {
  lnkMyProfile.Visible = false;
}
于 2011-05-03T13:38:18.563 に答える