"승인 된"사용자 목록 만 필요하지만 알아낼 수는 없습니다.ASP.NET C# (3.5) 멤버쉽, 승인 된 사용자 만 얻는 방법?
lstUsersNotInRole.DataSource = Membership.GetAllUsers(); // Get Approved Users Only!?!
lstUsersNotInRole.DataBind();
모든 종류의 도움을 주시면 감사하겠습니다.
Kardo
"승인 된"사용자 목록 만 필요하지만 알아낼 수는 없습니다.ASP.NET C# (3.5) 멤버쉽, 승인 된 사용자 만 얻는 방법?
lstUsersNotInRole.DataSource = Membership.GetAllUsers(); // Get Approved Users Only!?!
lstUsersNotInRole.DataBind();
모든 종류의 도움을 주시면 감사하겠습니다.
Kardo
데이터베이스로 파기하고 저장 프로 시저를 변경/생성하는 대신 (사용중인 데이터베이스를 지정하지 않았으므로) Linq를 사용하여이 작업을 수행 할 수 있습니다. 이것을보십시오 :
Membership.GetAllUsers().Cast<MembershipUser>().Where(u => u.IsApproved == true).ToList();
당신은 당신의 저장 프로 시저에 승인 된 사용자를 필터링하고 응용 프로그램에 결과를 반환해야합니다.
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
당신이 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
을 보시고 관련 부분을 복사하여 복사하십시오.
당신의 완전하고 간단한 응답을위한 감사합니다 : -) – Kardo