「承認済み」ユーザーのリストのみが必要ですが、それを理解する方法がわかりません。
lstUsersNotInRole.DataSource = Membership.GetAllUsers(); // Get Approved Users Only!?!
lstUsersNotInRole.DataBind();
どんな親切な助けでも大歓迎です。
カルド
「承認済み」ユーザーのリストのみが必要ですが、それを理解する方法がわかりません。
lstUsersNotInRole.DataSource = Membership.GetAllUsers(); // Get Approved Users Only!?!
lstUsersNotInRole.DataBind();
どんな親切な助けでも大歓迎です。
カルド
データベースを調べてストアドプロシージャを変更/作成する代わりに(使用しているデータベースを指定しなかったため)、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
を使用する場合は、プレーンなsql-statement(例:via )として、またはページングとパラメーター化をサポートするカスタムストアドプロシージャを作成することによりSqlMembershipProvider
、手動で選択できます。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
、関連する部分をコピーして貼り付け、それに応じて変更してください。