Razor View IsAuthenticated没有按预期工作

Ero*_*ocM 13 c# asp.net-mvc razor

我创建了一个简单的MVC应用程序,它使用随新项目提供的.Net Membership Provider.

我试图让标签正确显示.我可能听不懂,但这是我的代码:

<!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>
Run Code Online (Sandbox Code Playgroud)

在这一行:

@if (Request.IsAuthenticated)
Run Code Online (Sandbox Code Playgroud)

我正在尝试显示正确的标签,如果它们已经过身份验证.这总是真实的......

我该怎么做?我显然没有以正确的方式做到这一点......

再次感谢!

Jak*_*cki 21

我想你应该用

@if(User.Identity.IsAuthenticated)

  • 有趣的是......`Request.IsAuthenticated`应该总是等于'User.Identity.IsAuthenticated`.见这里:http://forums.asp.net/t/1416811.aspx (2认同)