3个SQL语句
CREATE TABLE UserList
(
u_id INT NOT NULL IDENTITY,
u_username VARCHAR( 100 ),
u_password VARCHAR( 100 )
)
//以上是创建一个表
CREATE PROCEDURE DBRegister
(
@username Varchar( 100 ),
@password Varchar( 100 )
)
AS
IF EXISTS( SELECT u_id
FROM UserList
WHERE u_username=@username )
RETURN - 1
ELSE
INSERT UserList (
u_username,
u_password
) VALUES (
@username,
@password
)
RETURN @@IDENTITY //返回受影响的行的@@IDENTITY
//创建一个储存过程
CREATE PROCEDURE DBAuthenticate
(
@username Varchar( 100 ),
@password Varchar( 100 )
)
As
DECLARE @ID INT
DECLARE @actualPassword Varchar( 100 )
SELECT
@ID = IdentityCol, //IdentityCol返回@@IDENTITY
@actualPassword = u_password
FROM UserList
WHERE u_username = @username
IF @ID IS NOT NULL
IF @password = @actualPassword
RETURN @ID
ELSE
RETURN - 2
ELSE
RETURN - 1
//另一个储存过程
<%@ Page Language="C#" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<script language="C#" runat=server>
void Page_Load(Object sender , EventArgs e)
{
string strLinkPath;
if (! IsPostBack ) {
strLinkPath = string .Format( "Register/Register.aspx?ReturnUrl={0}", Request.Params[ "ReturnUrl" ] );
lnkRegister.NavigateUrl = string .Format( strLinkPath );
}
}
void Button_Click( object s, EventArgs e ) {
if ( IsValid ) {
if ( DBAuthenticate( txtUsername.Text, txtPassword.Text ) > 0 )
{
FormsAuthentication.RedirectFromLoginPage( txtUsername.Text, false );
}
}
}
int DBAuthenticate( string strUsername, string strPassword ) {
SqlConnection conMyData;
SqlCommand cmdSelect;
SqlParameter parmReturnValue;
int intResult;
conMyData = new SqlConnection("Server=localhost//TUJUNYAN;Integrated Security=SSPI;Database=Pubs" );
cmdSelect = new SqlCommand( "DBAuthenticate", conMyData );
cmdSelect.CommandType = CommandType.StoredProcedure;
parmReturnValue = cmdSelect.Parameters.Add( "RETURN_VALUE", SqlDbType.Int );
parmReturnValue.Direction = ParameterDirection.ReturnValue;
cmdSelect.Parameters.Add( "@username", strUsername );
cmdSelect.Parameters.Add( "@password", strPassword );
conMyData.Open();
cmdSelect.ExecuteNonQuery();
intResult = System.Convert.ToInt32(cmdSelect.Parameters[ "RETURN_VALUE" ].Value);
conMyData.Close();
if ( intResult < 0 )
{
if ( intResult == -1 )
{
lblMessage.Text = "Username ! Registered!";
}
else
{
lblMessage.Text = "Invalid Password!";
}
}
return intResult;
}
</Script>
<html>
<head><title>Login.aspx</title></head>
<body>
<form Runat="Server">
<h2>Please Login:</h2>
<asp:Label
ID="lblMessage"
ForeColor="Red"
Font-Bold="True"
Runat="Server" />
<p>
<b>Username:</b>
<br>
<asp:TextBox
ID="txtUsername"
Runat="Server" />
<asp:RequiredFieldValidator
ControlToValidate="txtUsername"
Text="Required!"
Runat="Server" />
<p>
<b>Password:</b>
<br>
<asp:TextBox
ID="txtPassword"
Runat="Server" />
<asp:RequiredFieldValidator
ControlToValidate="txtPassword"
Text="Required!"
Runat="Server" />
<p>
<asp:Button
Text="Login!"
OnClick="Button_Click"
Runat="Server" />
<hr>
<asp:HyperLink
ID="lnkRegister"
Text="Click Here To Register!"
Runat="Server" />
</form>
</body>
</html>
//登入的页面
<%@ Page Language="C#" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<script language="C#" runat=server>
void Button_Click( object s, EventArgs e ) {
SqlConnection conMyData;
SqlCommand cmdSelect;
SqlParameter parmReturnValue;
int intResult;
if ( IsValid )
{
conMyData = new SqlConnection("Server=localhost//tujunyan;Integrated Security=SSPI;Database=Pubs" );
cmdSelect = new SqlCommand( "DBRegister", conMyData );
cmdSelect.CommandType = CommandType.StoredProcedure;
parmReturnValue = cmdSelect.Parameters.Add( "RETURN_VALUE", SqlDbType.Int );
parmReturnValue.Direction = ParameterDirection.ReturnValue;
cmdSelect.Parameters.Add( "@username", txtUsername.Text );
cmdSelect.Parameters.Add( "@password", txtPassword.Text );
conMyData.Open();
cmdSelect.ExecuteNonQuery();
intResult = System.Convert.ToInt32(cmdSelect.Parameters[ "RETURN_VALUE" ].Value);
conMyData.Close();
if ( intResult == - 1 )
{
lblMessage.Text = "Username Already Registered!";
}
else
{
FormsAuthentication.RedirectFromLoginPage( txtUsername.Text, false );
}
}
}
</Script>
<html>
<head><title>Register.aspx</title></head>
<body>
<form Runat="Server">
<h2>Please Register</h2>
<asp:Label
ID="lblMessage"
ForeColor="Red"
Font-Bold="True"
EnableViewState="False"
Runat="Server" />
<p>
<b>Username:</b>
<br>
<asp:TextBox
ID="txtUsername"
Runat="Server" />
<asp:RequiredFieldValidator
ControlToValidate="txtUsername"
Text="Required!"
Runat="Server" />
<p>
<b>Password:</b>
<br>
<asp:TextBox
ID="txtPassword"
Runat="Server" />
<asp:RequiredFieldValidator
ControlToValidate="txtPassword"
Text="Required!"
Runat="Server" />
<p>
<asp:Button
Text="Register!"
OnClick="Button_Click"
Runat="Server" />
<asp:Label id="myLabel" runat="server" />
</form>
</body>
</html>
//注册的页面
<configuration>
<system.web>
<authentication mode="Forms" />
<authorization>
<deny users="?" /> //不允许匿名登入 如果是匿名就将转到login.aspx
</authorization>
</system.web>
</configuration>
//web.config
本文介绍了一个简单的用户注册和登录认证流程实现,通过SQL Server存储过程完成用户信息的存取及验证工作。具体包括:创建用户表、注册过程、登录认证过程,并使用C#语言与ASP.NET进行前后端交互。
2675

被折叠的 条评论
为什么被折叠?



