2012-09-06 18 views
13

新しいプロジェクトで提供されている.Netメンバーシッププロバイダを使用している単純なMVCアプリケーションを作成しました。Razor View IsAuthenticatedが期待どおりに機能しない

タブを正しく表示しようとしています。私はこの権利を理解しますが、ここに私のコードですしない場合があります。このラインで

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

私は、彼らがすでに認証されている場合に保留中の右のタブを表示しようとしています。これはいつも真実として出ています...

どうすればいいですか?私は明らかにそれをやっていません...

もう一度ありがとう!

答えて

19

は、私はあなたが

@if(User.Identity.IsAuthenticated)

+1

完璧!まさに私が必要なもの! tyvm !! – ErocM

+2

興味深いことに.. 'Request.IsAuthenticated'は常に' User.Identity.IsAuthenticated'に等しくなければなりません。ここをクリックしてください:http://forums.asp.net/t/1416811.aspx –

+0

@LenielMacaferi - あなたがaghausman12を信頼するかどうか質問します;-) –

2

まあを使うべきだと思う、あなたの質問は非常に明確ではないが、この行のRequest.IsAuthenticated

@if(Request.IsAuthenticated) 

チェック要求が認証されたユーザーに関するデータを持っている場合。 trueの場合、リンクが表示されます。ユーザーがログインしている場合Change Passwordリンクのみが表示されます、あなたの特定のケースで

それは正しく見えます。

タブを非表示にするには、Request.IsAuthenticated = falseの場合は、最初にlogoutにする必要があります。ログイン情報を保存するCookieがユーザーのブラウザから消去されます。

関連する問題