2013-03-25 2 views
0

내 로그인 페이지 컨트롤 코드는 다음과 같습니다코드 작성의 LoginStatus 및 LogoutStatus는 C#을 사용하기위한

<table class="auto-style9"> 
    <tr> 
     <td class="auto-style12" colspan="2" style="font-family: 
     Georgia; font-size: medium; font-weight: bold; 
     text-transform: uppercase; color: #000000">Login 
     </td> 
    </tr> 
    <tr> 
     <td class="auto-style15">User name</td> 
     <td class="auto-style15"> 
     <asp:TextBox ID="UserNameTextBox" runat="server"></asp:TextBox> 
     </td> 
    </tr> 
    <tr> 
     <td class="auto-style15">Password </td> 
     <td class="auto-style15"> 
     <asp:TextBox ID="PasswordTextBox" runat="server" TextMode="Password">    
     </asp:TextBox> 
     </td> 
    </tr> 
    <tr> 
     <td class="auto-style15">&nbsp;</td> 
     <td class="auto-style15"> 
     <asp:Button ID="ButtonLogin" runat="server" 
      CommandName="Login" Text="Login!" 
      OnClick="ButtonLogin_Click" BackColor="Black" 
      ForeColor="Yellow" /> 
     </td> 
    </tr> 
</table> 

내 버튼 로그인 Click 이벤트는 다음과 같습니다

protected void ButtonLogin_Click(object sender, EventArgs e) 
{ 
    using(BerouDataContext Data = new BerouDataContext()) 
    { 
     var UsernameCheck = UserNameTextBox.Text; 
     var PasswordCheck = PasswordTextBox.Text; 
     var UserExist = Data.Memberships.Single(s => s.Username == UsernameCheck); 
     if (UserExist == null || UserExist.Password != PasswordCheck) 
     { 
     LabelLoginValidity.Text = "Login Details are incorrect."; 
     } 
     else 
     { 
     LabelLoginValidity.Text = "Login Successfull!"; 
     } 
    } 
} 

내 질문은 어떻게 코딩하는 쿠키를 만드는 방법입니다 C#에서 loginStatus에 대한 몇 가지 코드를 구현 도와 주셔서 감사합니다.

답변

0

기본적으로 사용자가 로그인했는지 여부를 확인하고 싶습니다.

당신이 Session의 사용이 변수 만들거나 다른 부분에 ButtonLogin_Click 내부 Cookie 변수

수 있습니다, 당신은 성공적인 로그인, 이 라인

else 
    { 
    LabelLoginValidity.Text = "Login Successfull!"; 
    Session["loggedIn"]=true; 
    //or you can create cookie like this 

     HttpCookie myCookie = new HttpCookie("myCookie"); 

     //Add key-values in the cookie 
     myCookie.Values.Add("userid", objUser.id.ToString()); 

     //set cookie expiry date-time. Made it to last for next 30 minutes. 
     myCookie.Expires = DateTime.Now.AddMinutes(30); 

     //Most important, write the cookie to client. 
     Response.Cookies.Add(myCookie); 
    } 

를 추가 할 때 지금이 세션이나 쿠키 변수 내부 페이지를 확인할 수 있습니다. 홈 페이지

protected void Page_load(object sender, EventArgs e) 
{ 
     if(Session["loggedIn"]==null) 
     { 
      //Session doesn't exist, redirect the user to login page 
      Response.Redirect("Login.aspx"); 
     } 
} 

하고 내부 같은 로그 아웃 버튼시 세션 또는 쿠키 변수 즉

protected void btnLogout_Click(object sender, EventArgs e) 
{ 
    Session.Abandon(); 
    //or 
    //Session.Remove("loggedIn"); 
} 

그러니까 기본적으로, SessionCookie은 상태 관리 기술을 클릭 파기해야합니다.

more about them here

+0

도움을 주셔서 감사합니다. :) – VINNUSAURUS

0

가 바퀴를 재발견하지 마십시오 읽기; 대신 ASP.Net의 FormsAuthentication을 사용하십시오.

자신의 로그인 논리를 작성하는 것보다 안전합니다.

protected void ButtonLogin_Click(object sender, EventArgs e) 
{ 
    using(BerouDataContext Data = new BerouDataContext()) 
    { 
     var UsernameCheck = UserNameTextBox.Text; 
     var PasswordCheck = PasswordTextBox.Text; 
     var UserExist = Data.Memberships.Single(s => s.Username == UsernameCheck); 
     if (UserExist == null || UserExist.Password != PasswordCheck) 
     { 
     LabelLoginValidity.Text = "Login Details are incorrect."; 
     } 
     else 
     { 
     FormsAuthentication.SetAuthCookie(UserNameTextBox.Text, false); 
     LabelLoginValidity.Text = "Login Successfull!"; 
     } 
    } 
} 

여기는 logout입니다.

+0

도움을 주셔서 감사합니다. :) – VINNUSAURUS

관련 문제