2013-03-11 5 views

답변

5

데이터베이스로 파기하고 저장 프로 시저를 변경/생성하는 대신 (사용중인 데이터베이스를 지정하지 않았으므로) Linq를 사용하여이 작업을 수행 할 수 있습니다. 이것을보십시오 :

Membership.GetAllUsers().Cast<MembershipUser>().Where(u => u.IsApproved == true).ToList(); 
+0

당신의 완전하고 간단한 응답을위한 감사합니다 : -) – Kardo

0

당신은 당신의 저장 프로 시저에 승인 된 사용자를 필터링하고 응용 프로그램에 결과를 반환해야합니다.

CREATE PROCEDURE dbo.Membership_GetActiveUsersInRoles 

    @RoleName nvarchar(256) 

AS 

    BEGIN 

     DECLARE @RoleId uniqueidentifier 

     SELECT @RoleId = RoleId 
     FROM dbo.aspnet_Roles 
     WHERE LOWER(@RoleName) = LoweredRoleName 

     SELECT u.UserName, u.UserId 
     FROM dbo.aspnet_Users u, dbo.aspnet_UsersInRoles ur, dbo.aspnet_Membership m 
     WHERE 
     u.UserId = m.UserId AND 
     u.UserId = ur.UserId AND 
     @RoleId = ur.RoleId and 
     m.IsApproved = 'true' 
     -- You can also specify m.IsLockedOut = 'false' for other purposes 

END 
0

당신이 SqlMembershipProvider를 사용하는 경우, 수동으로 선택할 수 있습니다 중 일반 SQL 문 (예를 통해 ADO.NET)이나 또한 페이징과 ApplicationId 및 위치를 매개 변수화 할 수 있습니다를 지원하는 사용자 지정 저장 - 프로 시저를 작성하여 IsApproved.

SELECT m.IsApproved, u.UserName, 
     m.Email, m.PasswordQuestion, m.Comment, 
     m.CreateDate, m.LastLoginDate, u.LastActivityDate, 
     m.LastPasswordChangedDate, u.UserId, 
     m.IsLockedOut, m.LastLockoutDate 
FROM dbo.aspnet_Membership m, dbo.aspnet_Users u 
WHERE u.UserId = m.UserId 
AND m.IsApproved = @IsApproved 
ORDER BY u.UserName 

dbo.aspnet_Membership_GetAllUsers을 보시고 관련 부분을 복사하여 복사하십시오.