public LogOnResponse LogOn(string userName, string password, bool rememberMe = false)
        {
            var logOnResponse = new LogOnResponse();
            var roles         = new List <string>();
            var result        = new MembershipValidationResult();

            foreach (var membershipService in _membershipServices)
            {
                result = membershipService.ValidateUser(userName, password);
                if (result.Success)
                {
                    logOnResponse.IsValid = true;
                    roles.AddRange(result.Roles);
                    userName = result.UserName;
                    break;
                }
                if (!String.IsNullOrEmpty(result.Error))
                {
                    logOnResponse.Errors.Add(result.Error);
                }
            }

            if (logOnResponse.IsValid)
            {
                _roleProviders.ForEach(r => roles.AddRange(r.RolesFor(userName, result.Memberships)));
                SetCookie(userName, rememberMe, roles);

                logOnResponse.IsValid = true;
            }

            return(logOnResponse);
        }
        public LogOnResponse LogOn(string userName, string password, bool rememberMe = false)
        {
            var logOnResponse = new LogOnResponse();
            var roles = new List<string>();
            var result = new MembershipValidationResult();
            foreach (var membershipService in _membershipServices)
            {
                result = membershipService.ValidateUser(userName, password);
                if (result.Success)
                {
                    logOnResponse.IsValid = true;
                    roles.AddRange(result.Roles);
                    userName = result.UserName;
                    break;
                }
                if(!String.IsNullOrEmpty(result.Error))
                    logOnResponse.Errors.Add(result.Error);
            }

            if(logOnResponse.IsValid)
            {
                _roleProviders.ForEach(r => roles.AddRange(r.RolesFor(userName, result.Memberships)));
                SetCookie(userName, rememberMe, roles);
                
                logOnResponse.IsValid = true;
            }

            return logOnResponse;
        }