2012-09-06 19 views
13

मैंने एक साधारण एमवीसी एप्लिकेशन बनाया है जो नई परियोजना के साथ प्रदान की गई नेट सदस्यता प्रदाता का उपयोग कर रहा है।रेजर व्यू प्रमाणीकृत अपेक्षित काम नहीं कर रहा है

मैं टैब को सही तरीके से दिखाने की कोशिश कर रहा हूं। मैं यह सही समझ में न आएं, लेकिन यहाँ मेरे कोड है:

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

मैं सही टैब पर लंबित अगर वे पहले से प्रमाणीकृत हैं दिखाने के लिए कोशिश कर रहा हूँ। यह हमेशा सच के रूप में बाहर आ रहा है ...

मुझे यह कैसे करना चाहिए? मैं स्पष्ट रूप से इसे सही तरीके से नहीं कर रहा हूं ...

फिर से धन्यवाद! यदि अनुरोध एक प्रमाणीकृत उपयोगकर्ता के बारे में डेटा है

@if(Request.IsAuthenticated) 

चेक:

उत्तर

19

मुझे लगता है कि आप का उपयोग करना चाहिए

@if(User.Identity.IsAuthenticated)

+1

सही !!! बिल्कुल मुझे क्या चाहिए !! tyvm !! – ErocM

+2

दिलचस्प ... 'Request.Is प्रमाणीकृत 'हमेशा' User.Identity.Is प्रमाणीकृत' के बराबर होना चाहिए। यहां देखें: http://forums.asp.net/t/1416811.aspx –

+0

@LenielMacaferi - यह एक सवाल है यदि आप aghausman12 पर भरोसा करते हैं तो मुझे ;-) –

2

खैर, अपने प्रश्न बहुत स्पष्ट नहीं है, लेकिन इस पंक्ति में Request.IsAuthenticated । यदि सही है, तो आप लिंक दिखाए जाएंगे।

अपने विशिष्ट मामले में Change Password लिंक केवल तभी उपयोगकर्ता के प्रवेश दिखाया जाएगा।

यह सही लग रहा है।

टैब को छिपाने के लिए, Request.IsAuthenticated = false के लिए आपको पहले logout होना चाहिए ताकि लॉगिन जानकारी संग्रहीत करने वाली कुकीज़ उपयोगकर्ता ब्राउज़र से साफ़ हो जाएं।

संबंधित मुद्दे