超詳細asp.Netは完全なログイン機能を実現する
この2,3日ずっとaspを使っています.Netは1つのログイン機能を実現して、収穫はとても多くて、私の得を分かち合います:
まず、本人用の開発ツールはMicrosoft Visual Studio 2010バージョン、データベース用はSql Server 2005です.
sql文でユーザー・テーブルuserInfoを作成するには、次の手順に従います.
not nullは非空を表し、primary keyはプライマリ・キーを表し、identityは自己増加を表す.
sql文でユーザーadmin 5を追加します.
loginを作成します.aspxページ:
login.aspx.csページでログイン機能を実現するには:
注意:ログインを実現するには、ログインボタンをクリックしてイベントをトリガーし、ページをリフレッシュしてロードするわけではありません.他のページでユーザー名を表示したい場合は、Session[userName]を直接使用します.
まず、本人用の開発ツールはMicrosoft Visual Studio 2010バージョン、データベース用はSql Server 2005です.
sql文でユーザー・テーブルuserInfoを作成するには、次の手順に従います.
create table userInfo(
userId int not null primary key identity(1,1),
userName varchar(255),
password varchar(255),
remark varchar(255));
not nullは非空を表し、primary keyはプライマリ・キーを表し、identityは自己増加を表す.
sql文でユーザーadmin 5を追加します.
insert into userInfo(userName,password)values('admin5','admin5');//
loginを作成します.aspxページ:
loginDemo
login.aspx.csページでログイン機能を実現するには:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using IceLine.Iar.Tools;
public partial class study_login : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//login();
//queryUserInfo();
}
public void login()
{
string str = "server= ;database= ;uid= ;pwd= ;Trusted_Connection=no";
SqlConnection conn = new SqlConnection(str);
conn.Open();
string sql = "select * from userInfo where userName=@userName and password=@password";
SqlCommand comm = new SqlCommand(sql, conn);
comm.Parameters.Add("userName", TextBox1.Text);
comm.Parameters.Add("password", TextBox2.Text);
SqlDataReader sdr = comm.ExecuteReader();
if (sdr.Read())
{
Session["userName"] = TextBox1.Text;
Session["password"] = TextBox2.Text;
//lblMessage.Text = " !";
Response.Write("alert(' " + Session["userName"] + ", !');location.href='../secure/report/test2.aspx'; ");
//Response.Write("alert(' ');location.href='../secure/report/test2.aspx'; ");
}
else
{
lblMessage.Text = " , !";
//Response.Redirect("login.aspx");
}
//Server.Transfer("../secure/report/test2.aspx");
//Response.Write("alert(' ');location.href='../secure/report/test2.aspx'; ");
//Response.Write("../secure/report/test.aspx");
//Response.Redirect("../secure/report/test.aspx");
conn.Close();
}
public void queryUserInfo() {
clsDbAccept cds = new clsDbAccept();
Session["userName"] = TextBox1.Text;
Session["password"] = TextBox2.Text;
string sql = "select * from userInfo where userName='" + Session["userName"] + " 'and password='" + Session["password"]+"'";
SqlDataReader sdr = null;
IarDBManager db = new IarDBManager();
sdr = db.Query(sql);
if (sdr.Read())
{
Session["userName"] = TextBox1.Text;
Session["password"] = TextBox2.Text;
//lblMessage.Text = " !";
Response.Write("alert(' " + Session["userName"] + ", !');location.href='../secure/report/test2.aspx'; ");
//Response.Write("alert(' ');location.href='../secure/report/test2.aspx'; ");
}
else
{
lblMessage.Text = " , !";
//Response.Redirect("login.aspx");
}
}
protected void Button1_Click(object sender, EventArgs e)
{
//queryUserInfo();
login();
}
}
Trusted_Connection=no
はデータベースのユーザー名とパスワードでログインし、yesの場合はwindowsでログインします.上のコードのlogin()メソッドとqueryUserInfo()メソッドは、ユーザー登録機能を実現していますが、データベース接続方式が異なるだけで、後者は既存のパッケージコードを使用しています.無視できます.注意:ログインを実現するには、ログインボタンをクリックしてイベントをトリガーし、ページをリフレッシュしてロードするわけではありません.他のページでユーザー名を表示したい場合は、Session[userName]を直接使用します.