2012-09-06 28 views
13

Utworzono prostą aplikację MVC, która korzysta z dostawcy członkostwa .Net, który jest dostarczany z nowym projektem.Widok maszynki do golenia nie jest zgodny z oczekiwaniami

Próbuję uzyskać prawidłowe wyświetlanie zakładek. I nie może zrozumieć tego prawa, ale tutaj jest mój kod:

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

Na tej linii:

@if (Request.IsAuthenticated) 

Próbuję pokazać odpowiednie zaczepy w oczekiwaniu na razie są one już uwierzytelniony. To zawsze wychodzi jako prawdziwe ...

Jak powinienem to robić? Najwyraźniej nie robię tego we właściwy sposób ...

Jeszcze raz dziękuję!

Odpowiedz

19

myślę, że należy użyć

@if(User.Identity.IsAuthenticated)

+1

idealne !!! dokładnie to, czego potrzebowałem !! tyvm !! – ErocM

+2

Interesujące ... 'Request.IsAuthenticated' powinno być zawsze równe' User.Identity.IsAuthenticated'. Zobacz tutaj: http://forums.asp.net/t/1416811.aspx –

+0

@LenielMacaferi - to pytanie, jeśli ufasz aghausman12 bardziej niż ja ;-) –

2

dobrze, pytanie nie jest bardzo jasne, ale Request.IsAuthenticated w tej linii:

@if(Request.IsAuthenticated) 

sprawdza, czy wniosek zawiera dane dotyczące użytkownika uwierzytelnionego . Jeśli true, link zostanie wyświetlony.

W Twoim konkretnym przypadku związek Change Password będą wyświetlane tylko wtedy, gdy użytkownik jest zalogowany.

Wygląda poprawne.

Aby ukryć zakładki, należy najpierw Request.IsAuthenticated = false, aby pliki cookie przechowujące informacje logowania zostały usunięte z przeglądarki użytkownika.

Powiązane problemy