说明:
存储过程可以防止SQL注入漏洞的威胁,也会很安全。该存储过程包含输入参数和输出参数,输入参数有用户ID和密码,返回值表示出不同的结果。
ALTER PROCEDURE [dbo].[Logining](
@in_id varchar(10),
@in_password varchar(10),
@out_parameter varchar(10) output
)
/**
@in_id 传入参数 ID
@in_password 传入参数 密码
@out_parameter 传出参数 0成功/1密码错误/2当前状态不可用或者其他原因
*/
AS
declare @temp_password varchar(10);
declare @temp_status varchar(10);
declare @temp_blog varchar(10);
declare @temp_event varchar(100);
declare @temp_count int;
select @temp_count=COUNT(*) from Users where ID=@in_id;
select @temp_password= password from Users where ID=@in_id;
select @temp_status= status from Users where ID=@in_id;
set @temp_event='登录系统客户端';
--验证密码是否正确
if(@temp_count<1)
set @out_parameter=3;
else
begin
if(@temp_password=@in_password)
begin
--验证状态是否可用
if(@temp_status=1)
begin
set @out_parameter=0;
exec WriteBlog @in_id,@temp_event,@temp_blog output;
end
else
begin
set @out_parameter=2;
end
end
else
set @out_parameter=1;
end