2013-03-25 89 views
0

我的登录页面控件代码:编写代码一

<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变量或Cookie可变

在其他部分的ButtonLogin_Click里面,当你登录成功, 添加这些行

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); 
    } 

现在这个会话或cookie变量,你可以检查内页。像 您的主页上

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"); 
     } 
} 

和你的内心必须销毁在退出按钮会话或cookie变量点击即

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

所以基本上,SessionCookie的状态管理技术。

阅读more about them here

+0

谢谢你的帮助,我会检查它:) – VINNUSAURUS 2013-03-27 14:01:00

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 2013-03-27 14:00:32