13

新しいプロジェクトで提供される.Netメンバーシッププロバイダーを使用する単純なMVCアプリケーションを作成しました。

タブを正しく表示しようとしています。私はこの権利を理解していないかもしれませんが、ここに私のコードがあります:

<!DOCTYPE html>
<html>
<head>
    <title>@ViewBag.Title</title>
    <link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />
    <script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")" type="text/javascript"></script>
</head>
<body>
    <div class="page">
        <div id="header">
            <div id="title">
                <h1>Suburban Customer Portal</h1>
            </div>
            <div id="logindisplay">
                @Html.Partial("_LogOnPartial")
            </div>
            <div id="menucontainer">
              <ul id="menu">

                @if (Request.IsAuthenticated)
                {
                  <li>@Html.ActionLink("ChangePassword", "ChangePassword", "Account")</li>
                }else { 
                  <li>@Html.ActionLink("Logon", "Logon", "Account")</li>
                  <li>@Html.ActionLink("Register", "Register", "Account")</li>
                }

                  <li>@Html.ActionLink("ContactUs", "ContactUs", "Home")</li>
              </ul>
            </div>
        </div>
        <div id="main">
            @RenderBody()
        </div>
        <div id="footer">
        </div>
    </div>
</body>
</html>

この行で:

@if (Request.IsAuthenticated)

すでに認証されている場合は、保留中の適切なタブを表示しようとしています。これは常に真実として出てきています...

これをどのように行うべきですか?私はどうやらそれを正しい方法でやっていない...

再度、感謝します!

4

2 に答える 2

21

私はあなたが使うべきだと思います

@if(User.Identity.IsAuthenticated)

于 2012-09-06T16:16:12.100 に答える
2

さて、あなたの質問はあまり明確ではありませんが、この行のRequest.IsAuthenticated :

@if(Request.IsAuthenticated)

リクエストに認証されたユーザーに関するデータが含まれているかどうかを確認します。trueの場合、リンクが表示されます。

特定のケースではChange Password、ユーザーがログインしている場合にのみリンクが表示されます。

正しく見えます。

タブを非表示にするには、つまり、Request.IsAuthenticated = false最初logoutにログイン情報を格納するCookieがユーザーのブラウザからクリアされるようにする必要があります。

于 2012-09-06T16:16:26.497 に答える