[修改]ASP.net使用者登入驗證控制項應用在自己的資料庫

  • 7848
  • 0

摘要:ASP.net使用者登入驗證控制項應用在自己的資料庫

 原範例是topcat用vb寫的,但因為要用到的是c#,所以拿來改寫了一下。

http://www.dotblogs.com.tw/topcat/archive/2008/03/05/1237.aspx

 

01 public partial class login : System.Web.UI.Page
02 {
03     Login Login1 = new System.Web.UI.WebControls.Login();
04     Label lblErrMsg = new System.Web.UI.WebControls.Label();
05
06     SqlConnection sqlconn = null;
07
08     protected void Page_Load(object sender, EventArgs e)
09     {
10         Login1 = (Login)LoginView1.FindControl("Login1");
11         lblErrMsg = (Label)LoginView1.FindControl("lblErrMsg");
12         sqlconn = new SqlConnection();
13         sqlconn.ConnectionString = "Data Source=m200w20;Initial Catalog=money_note;User Id=zzzz;Password=xxxx";
14     }

15     protected void LoginView1_ViewChanged(object sender, EventArgs e)
16     {
17     }

18     protected void Login1_Authenticate(object sender, AuthenticateEventArgs e)
19     {
20         Session.RemoveAll();
21         if (chklogin(Login1.UserName, Login1.Password))
22         {
23             FormsAuthentication.RedirectFromLoginPage(Login1.UserName, true);            
24         }

25         else
26         {
27             lblErrMsg.Text = "wrong id or password";
28             //FormsAuthentication.RedirectToLoginPage("chkerror");
29             
30         }

31     }

32     private bool chklogin(string username, string pwd)
33     {
34         try
35         {
36             DataTable dt = new DataTable();
37
38             sqlconn.Open();
39
40             SqlCommand sqlcmd = sqlconn.CreateCommand();
41             string sql = "select * from money_user where user_name='" + username + "' and user_password='" + pwd + "'";
42             sqlcmd.CommandText = sql;
43             SqlDataReader sqldr = sqlcmd.ExecuteReader();
44
45             if (sqldr.HasRows) return true;
46
47             else
48             {
49                 lblErrMsg.Text = "wrong id or password";
50                 return false;
51             }

52         }

53         catch(Exception e)
54         {
55             return false;
56         }

57         
58     }

59     private bool chklogin()
60     {
61         return true;
62     }

63 }