YetAnotherForum集成AD用户混合登录(四) 创建StoreProcedure
验证AD
USE [yafnet]
GO
/****** Object: StoredProcedure [dbo].[yaf_user_login_AD] Script Date: 09/30/2008 02:23:21 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[yaf_user_login_AD](
@BoardID INT,
@Name NVARCHAR(50))
AS
BEGIN
DECLARE @UserID INT
-- Try correct board first
IF EXISTS (SELECT UserID
FROM yaf_User
WHERE Name = @Name
AND BoardID = @BoardID
AND (Flags & 2) = 2)
BEGIN
SELECT UserID
FROM yaf_User
WHERE Name = @Name
AND BoardID = @BoardID
AND (Flags & 2) = 2
RETURN
END
IF NOT EXISTS (SELECT UserID
FROM yaf_User
WHERE Name = @Name
AND (BoardID = @BoardID
OR (Flags & 3) = 3))
begin
--insert into user
insert into yaf_user(BoardID,Name,Password,joined,lastvisit,NumPosts,TimeZone,RankID,Gender,flags,ThemeFile) values(1,@Name,'',convert(varchar(20), getdate(),120),convert(varchar(20), getdate(),120),0,480,3,0,2,'ASPNet.xml')
select @UserID=UserID from yaf_user where name=@Name
--insert into usergroup
insert into yaf_usergroup values(@userid,3)
end
ELSE
SELECT @UserID = UserID
FROM yaf_User
WHERE Name = @Name
AND (BoardID = @BoardID
OR (Flags & 1) = 1)
AND (Flags & 2) = 2
SELECT @UserID
END
通过验证即插入用户并取得userid
USE [yafnet]
GO
/****** Object: StoredProcedure [dbo].[yaf_user_login_wopwd] Script Date: 09/30/2008 02:23:28 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[yaf_user_login_wopwd](
@BoardID INT,
@Name NVARCHAR(50))
AS
BEGIN
DECLARE @UserID INT
-- Try correct board first
IF EXISTS (SELECT UserID
FROM yaf_User
WHERE Name = @Name
AND BoardID = @BoardID
AND (Flags & 2) = 2)
BEGIN
SELECT UserID
FROM yaf_User
WHERE Name = @Name
AND BoardID = @BoardID
AND (Flags & 2) = 2
RETURN
END
IF NOT EXISTS (SELECT UserID
FROM yaf_User
WHERE Name = @Name
AND (BoardID = @BoardID
OR (Flags & 3) = 3))
SET @UserID = NULL
ELSE
SELECT @UserID = UserID
FROM yaf_User
WHERE Name = @Name
AND (BoardID = @BoardID
OR (Flags & 1) = 1)
AND (Flags & 2) = 2
SELECT @UserID
END