2011-08-19 5 views
1

나는 asp.net 웹 응용 프로그램을 사용하여 사용자가 로그인하고 로그 아웃 할 수 있습니다. 사용자가 로그인 할 때 (문제 없음) 환영합니다 사용자 이름이 표시됩니다. 하지만 옆에 여전히 로그인이 나와 있습니다. 누구든지 내가 로그인 할 때 설정해야하는 속성이 있는지 알려줄 수 있습니까? 어떤 도움을 주셔서 감사합니다.Asp.net 로그인 상태가 사용자 로그인 후 로그 아웃하지 않음

<asp:LoginView ID="HeadLoginView" runat="server" EnableViewState="false"> 
        <AnonymousTemplate> 
         [ <a href="~/Account/Login.aspx" id="HeadLoginStatus" runat="server">Log In</a> 
         ] 
        </AnonymousTemplate> 
        <LoggedInTemplate> 
         <span class="bold">Welcome</span><span class="bold"> 
          <asp:LoginName ID="HeadLoginName" runat="server" /> 
         </span>! [ 
         <asp:LoginStatus ID="HeadLoginStatus" runat="server" LogoutAction="Redirect" LogoutText="Log Out" 
          LogoutPageUrl="~/" /> 
         ] 
        </LoggedInTemplate> 
       </asp:LoginView> 

protected void LoginUser_Authenticate(object sender, AuthenticateEventArgs e) 
    { 
     SqlHelper userLogin = new SqlHelper(); 
     TextBox User = (TextBox) LoginUser.FindControl("UserName"); 
     TextBox Password = (TextBox) LoginUser.FindControl("Password"); 
     bool results = userLogin.UserLogin(User.Text, Password.Text); 
     e.Authenticated = results; 
    } 

답변

0

ID가 HeadLoginStatus 인 두 개의 컨트롤이 있습니다. 그 이유가 있을까요? 둘째, EnableViewState = "false"를 제거하려고 했습니까? 이미 아니라면, 루트 디렉토리의 페이지로 시작 페이지를 변경

편집

보십시오. 이것이 어떤 차이가 있는지보십시오.

나는이 문제를 발견 한 것 같았습니다. 또는 어떻게 해결할 것인가에 대한 해결책은 입니다.

내 시작 페이지가 하위 디렉토리의 페이지로 설정되었고 루트가 아닙니다. 시작 페이지를 루트 (로그인 번호 .aspx가있는 인 페이지)로 변경했으며 이제 예상대로 작동합니다. 나는 생각하지 않는다 그래도 이런 식으로 행동 했어야했다. 여전히

+0

Visual Studio에서 제공 한 기본 설정 인 아무 것도 건드리지 않았습니다. – user516883

+0

언급 한 두 가지 사항을 변경해보고 차이가 있는지 확인할 수 있습니까? –

+0

둘 다 시도했지만 아직 아무것도하지 않았습니다. – user516883

-1

Anynymoustemplate를 제거하십시오. 그것에 대해 들어 본 적이 없습니다. 거기 있으면 안된다.

<AnonymousTemplate> 
[ <a href="~/Account/Login.aspx" id="HeadLoginStatus" runat="server">Log In</a> 
] 
</AnonymousTemplate> 

편집 : 죄송합니다. 어떤 이유로 인해 익명의 템플릿은 로그인 한 후에도 계속 표시됩니다.

+0

로그인하지 않은 사용자도 볼 수 있어야합니다. – user516883

+0

익명 템플릿 : http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.loginview.anonymoustemplate.aspx –

+0

그게 문제는 아니지만, 테스트를 위해 텍스트를 추가했습니다. 문제가 아니라. – user516883

0

하지 자사의 인증되지하지만 나는 그들이 (나는의 LoginStatus에 아웃 말의 기호를 변경했다) 기호를 클릭하면 그 주위에 작업 작동 발견 확실한 이유는이

if (Request.IsAuthenticated) 
     { 
      FormsAuthentication.SignOut(); 
      Session.Abandon(); 
      // clear authentication cookie 
      HttpCookie cookie1 = new HttpCookie(FormsAuthentication.FormsCookieName, ""); 
      cookie1.Expires = DateTime.Now.AddYears(-1); 
      Response.Cookies.Add(cookie1); 
      // clear session cookie (not necessary for your current problem but i would recommend you do it anyway) 
      HttpCookie cookie2 = new HttpCookie("ASP.NET_SessionId", ""); 
      cookie2.Expires = DateTime.Now.AddYears(-1); 
      Response.Cookies.Add(cookie2); 

     Response.Redirect("~/"); 
     } 
관련 문제