1

「承認済み」ユーザーのリストのみが必要ですが、それを理解する方法がわかりません。

lstUsersNotInRole.DataSource = Membership.GetAllUsers(); // Get Approved Users Only!?!
lstUsersNotInRole.DataBind();

どんな親切な助けでも大歓迎です。

カルド

4

3 に答える 3

5

データベースを調べてストアドプロシージャを変更/作成する代わりに(使用しているデータベースを指定しなかったため)、Linqを使用してこれを行うことができます。これを試して:

Membership.GetAllUsers().Cast<MembershipUser>().Where(u => u.IsApproved == true).ToList();
于 2013-03-11T09:18:10.720 に答える
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
于 2013-03-11T08:53:17.380 に答える
0

を使用する場合は、プレーンなsql-statement(例:via )として、またはページングとパラメーター化をサポートするカスタムストアドプロシージャを作成することによりSqlMembershipProvider、手動で選択できます。ADO.NETApplicationIdIsApproved

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、関連する部分をコピーして貼り付け、それに応じて変更してください。

于 2013-03-11T08:54:07.383 に答える