コード例 #1
0
        public override string[] FindUsersInRole(string roleName, string usernameToMatch)
        {
            SecUtility.CheckParameter(ref roleName, true, true, null, MAX_ROLE_LENGTH, ROLE_NAME);

            if (String.IsNullOrWhiteSpace(usernameToMatch))
            {
                return(new string[0]);
            }

            var username  = ElementNames.LowercaseUsername;
            var userQuery = Helper.FindQuery(usernameToMatch.ToLowerInvariant(), username);
            var query     = Builders <User> .Filter.And(
                Builders <User> .Filter.Eq(ElementNames.Roles, roleName.ToLowerInvariant()),
                userQuery.ToBsonDocument()
                );

            var cursor = UserCollection.FindSync <User>(query);

            return(cursor.ToEnumerable().Select(doc => doc.Username).ToArray());
        }
コード例 #2
0
        public override string[] FindUsersInRole(string roleName, string usernameToMatch)
        {
            SecUtility.CheckParameter(ref roleName, true, true, null, MAX_ROLE_LENGTH, ROLE_NAME);

            if (String.IsNullOrWhiteSpace(usernameToMatch))
            {
                return(new string[0]);
            }

            var username  = ElementNames.LowercaseUsername;
            var userQuery = Helper.FindQuery(usernameToMatch.ToLowerInvariant(), username);
            var query     = Query.And(
                Query.EQ(ElementNames.Roles, roleName.ToLowerInvariant()),
                userQuery
                );
            var cursor = UserCollection.FindAs <BsonDocument>(query);

            // only want the usernames
            cursor.SetFields(Fields.Include(username).Exclude(DOCUMENT_ID_NAME));

            return(cursor.Select(doc => doc[username].AsString).ToArray());
        }
コード例 #3
0
 public override bool RoleExists(string roleName)
 {
     SecUtility.CheckParameter(ref roleName, true, true, null, MAX_ROLE_LENGTH, ROLE_NAME);
     return(Roles.Contains(roleName.ToLowerInvariant()));
 }