Подтвердить что ты не робот

Razor View IsAuthenticated не работает должным образом

Я создал простое приложение MVC, в котором используется поставщик членства .Net, который поставляется с новым проектом.

Я пытаюсь показать вкладки правильно. Возможно, я не понимаю этого права, но здесь мой код:

<!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)

Я пытаюсь показать правильные вкладки в ожидании, если они уже прошли проверку подлинности. Это всегда происходит как истина...

Как я должен это делать? Я, видимо, не делаю этого правильно...

Еще раз спасибо!

4b9b3361

Ответ 1

Я думаю, вы должны использовать

@if(User.Identity.IsAuthenticated)

Ответ 2

Ну, ваш вопрос не очень ясен, но Request.IsAuthenticated в этой строке:

@if(Request.IsAuthenticated)

проверяет, имеет ли запрос данные об аутентифицированном пользователе. Если значение true, вы увидите ссылку.

В вашем конкретном случае ссылка Change Password будет отображаться только в том случае, если пользователь вошел в систему.

Это выглядит правильно.

Для скрытых вкладок, то есть для Request.IsAuthenticated = false вы должны сначала logout, чтобы файлы cookie, хранящие регистрационную информацию, были удалены из пользовательского браузера.