Пример #1
0
        public UpdateInfoCommandValidator(IdRangeValidator idValidator
                                          , UserNameValidator userNameValidator)
        {
            RuleFor(v => v.AvatarPhotoId)
            .SetValidator(idValidator);

            RuleFor(v => v.UserName)
            .SetValidator(userNameValidator);
        }
Пример #2
0
 public void ItRespectsMinAndMaxUserLengthFromConfiguration()
 {
     Configuration.Settings.UserNamePolicy.MinLength = 10;
     Configuration.Settings.UserNamePolicy.MaxLength = 13;
     Assert.IsTrue(UserNameValidator.IsValidUserName("1234567890123"), "Allow 13 characters for user name");
     Assert.IsTrue(UserNameValidator.IsValidUserName("1234567890"), "Allow 10 characters for user name");
     Assert.IsFalse(UserNameValidator.IsValidUserName("123456789"), "Disallow <10 characters for user name");
     Assert.IsFalse(UserNameValidator.IsValidUserName("12345678901234"), "Disallow >13 characters for user name");
 }
Пример #3
0
 public void ItAcceptsValidUserNames()
 {
     Assert.IsTrue(UserNameValidator.IsValidUserName("a"));
     Assert.IsTrue(UserNameValidator.IsValidUserName("A"));
     Assert.IsTrue(UserNameValidator.IsValidUserName("bente_bent"));
     Assert.IsTrue(UserNameValidator.IsValidUserName("0"));
     Assert.IsTrue(UserNameValidator.IsValidUserName("0233"));
     Assert.IsTrue(UserNameValidator.IsValidUserName("abcde123450123456789"), "Allow 20 characters for user name");
 }
        public CreateAccountCommandValidator(UserNameValidator userNameValidator
                                             , EmailValidator emailValidator
                                             , IStringLocalizer <AccountsResource> accountLocalizer)
        {
            RuleFor(v => v.Email)
            .SetValidator(emailValidator);

            RuleFor(v => v.Username)
            .SetValidator(userNameValidator);

            RuleFor(v => v.Password)
            .Must(p => !string.IsNullOrWhiteSpace(p))
            .WithMessage(accountLocalizer["EnterPassword"]);
        }
Пример #5
0
 public void ItRejectsInvalidUserNames()
 {
     Assert.IsFalse(UserNameValidator.IsValidUserName(null));
     Assert.IsFalse(UserNameValidator.IsValidUserName(""));
     Assert.IsFalse(UserNameValidator.IsValidUserName(" "));
     Assert.IsFalse(UserNameValidator.IsValidUserName("*"));
     Assert.IsFalse(UserNameValidator.IsValidUserName("aaa*aaa"));
     Assert.IsFalse(UserNameValidator.IsValidUserName("bb/lkj"));
     Assert.IsFalse(UserNameValidator.IsValidUserName("q+u"));
     Assert.IsFalse(UserNameValidator.IsValidUserName("app"));
     Assert.IsFalse(UserNameValidator.IsValidUserName("api"));
     Assert.IsFalse(UserNameValidator.IsValidUserName("css"));
     Assert.IsFalse(UserNameValidator.IsValidUserName("-"), "Must begin with letter or digit");
     Assert.IsFalse(UserNameValidator.IsValidUserName("."), "Must begin with letter or digit");
     Assert.IsFalse(UserNameValidator.IsValidUserName("_"), "Must begin with letter or digit");
     Assert.IsFalse(UserNameValidator.IsValidUserName("abcde123450123456789x"), "user name too long (max. 20 chars)");
 }
        private void ValidateUser(IUser user)
        {
            if (user == null)
            {
                throw new ArgumentNullException("user");
            }

            if (string.IsNullOrWhiteSpace(user.UserName))
            {
                throw new ArgumentException("User name is required.", "user");
            }

            string error;

            if (!UserNameValidator.Validate(user.UserName, out error))
            {
                throw new IdentityException(error);
            }
        }
        public async Task <LoginResponse> LoginUsingPassword(LoginRequest loginRequest, string issuer)
        {
            if (!UserNameValidator.Validate(loginRequest.userName).IsValid)
            {
                throw new UnauthorizedException("Username not valid !!");
            }

            var userId = GetUserIdIfLoginValid(loginRequest);
            var role   = GetUserRole(userId);

            if (userId == -1 || role == null)
            {
                return(null);
            }

            var loginResponse = await CreateLoginResponse(userId.ToString(),
                                                          loginRequest.userName, (Role)role, userId.ToString(), loginRequest.ConsumerKey, issuer);

            return(loginResponse);
        }
Пример #8
0
 public void ItRejectsInvalidUserNamesInDictionaryFile()
 {
     Assert.IsFalse(UserNameValidator.IsValidUserName("admin"));
     Assert.IsFalse(UserNameValidator.IsValidUserName("administrator"));
 }
Пример #9
0
        protected async override Task OnMessageActivityAsync(ITurnContext <IMessageActivity> turnContext, CancellationToken cancellationToken)
        {
            await base.OnMessageActivityAsync(turnContext, cancellationToken);

            var conversationStateAccessors = _conversationState.CreateProperty <PasswordResetConversationState>(nameof(PasswordResetConversationState));
            var conversationData           = await conversationStateAccessors.GetAsync(turnContext, () => new PasswordResetConversationState());

            var userStateAccessors = _userState.CreateProperty <PasswordResetRequest>(nameof(PasswordResetRequest));
            var userProfile        = await userStateAccessors.GetAsync(turnContext, () => new PasswordResetRequest());

            var inputText = turnContext.Activity.Text.Trim().ToLower();

            switch (conversationData.CurrentState)
            {
            case Enums.PwdResetConversationStates.Initial:
                conversationData.CurrentState = PwdResetConversationStates.AskUserName;
                await turnContext.SendActivityAsync("Şifrenizi resetlemek için kullanıcı adınızı öğrenebilir miyim?");

                break;

            case Enums.PwdResetConversationStates.AskUserName:
                if (UserNameValidator.Validate(inputText))
                {
                    userProfile.UserName          = inputText;
                    conversationData.CurrentState = PwdResetConversationStates.AskEmail;
                    await turnContext.SendActivityAsync($"Teşekkürler {userProfile.UserName}, Şimdi mail adresini öğrenebilir miyim?");
                }
                else
                {
                    await turnContext.SendActivityAsync($"İsmini tekrar girebilir misin?");
                }
                break;

            case Enums.PwdResetConversationStates.AskEmail:
                if (EmailValidator.Validate(inputText))
                {
                    userProfile.Email             = inputText;
                    conversationData.CurrentState = PwdResetConversationStates.AskApproval;
                    await turnContext.SendActivityAsync($"Bilgilerini aldım. Teşekkür ederim. Şimdi onayına ihtiyacım var.");

                    await turnContext.SendActivityAsync($"Kullanıcı adı :{userProfile.UserName}, email:{userProfile.Email}. Bu bilgiler ile şifreni resetlemek istediğinden emin misiniz?");
                }
                else
                {
                    await turnContext.SendActivityAsync($"{userProfile.UserName} emailini tekrar girebilir misin?");
                }
                break;

            case Enums.PwdResetConversationStates.AskApproval:
                if (ApprovalValidator.Validate(inputText))
                {
                    if (ApprovalValidator.IsApprooved(inputText))
                    {
                        conversationData.CurrentState = PwdResetConversationStates.Completed;
                        await turnContext.SendActivityAsync($"Onayınızı aldım. En kısa zamanda şifreniz resetlenecektir.");
                    }
                    else
                    {
                        conversationData.CurrentState = PwdResetConversationStates.Cancelled;
                        await turnContext.SendActivityAsync($"İşlem iptal edilmiştir.");
                    }

                    await turnContext.SendActivityAsync($"İyi çalışmalar.");
                }
                else
                {
                    await turnContext.SendActivityAsync($"sizi anlayamadım.");

                    await turnContext.SendActivityAsync($"Kullanıcı adı :{userProfile.UserName}, email:{userProfile.Email}. Bu bilgiler ile şifreni resetlemek istediğinden emin misiniz?");
                }
                break;

            case Enums.PwdResetConversationStates.Cancelled:
            case Enums.PwdResetConversationStates.Completed:
                await turnContext.SendActivityAsync("Yeni bir işlem yapmak için lütfen hangi işlemi yapmak istediğinizi söyleyiniz.");

                conversationData.CurrentState = PwdResetConversationStates.Initial;
                List <string> supportedActions = new List <string>();
                supportedActions.Add("Şifre Resetleme");
                await turnContext.SendActivityAsync(MessageFactory.SuggestedActions(supportedActions));

                break;

            default:
                break;
            }
        }
Пример #10
0
        protected async override Task OnMessageActivityAsync(ITurnContext <IMessageActivity> turnContext, CancellationToken cancellationToken)
        {
            await base.OnMessageActivityAsync(turnContext, cancellationToken);

            var conversationStateAccessors = _conversationState.CreateProperty <PasswordResetConversationState>(nameof(PasswordResetConversationState));
            var conversationData           = await conversationStateAccessors.GetAsync(turnContext, () => new PasswordResetConversationState());

            var userStateAccessors = _userState.CreateProperty <PasswordResetRequest>(nameof(PasswordResetRequest));
            var userProfile        = await userStateAccessors.GetAsync(turnContext, () => new PasswordResetRequest());

            var inputText = turnContext.Activity.Text.Trim().ToLower();

            switch (conversationData.CurrentState)
            {
            case Enums.PwdResetConversationStates.Initial:
                conversationData.CurrentState = PwdResetConversationStates.AskUserName;
                await turnContext.SendActivityAsync("Şifrenizi resetlemek için kullanıcı adınızı öğrenebilir miyim?");

                break;

            case Enums.PwdResetConversationStates.AskUserName:
                if (UserNameValidator.Validate(inputText))
                {
                    userProfile.UserName          = inputText;
                    conversationData.CurrentState = PwdResetConversationStates.AskEmail;
                    await turnContext.SendActivityAsync($"Teşekkürler {userProfile.UserName}, Şimdi mail adresini öğrenebilir miyim?");
                }
                else
                {
                    await turnContext.SendActivityAsync($"İsmini tekrar girebilir misin?");
                }
                break;

            case Enums.PwdResetConversationStates.AskEmail:
                if (EmailValidator.Validate(inputText))
                {
                    userProfile.Email             = inputText;
                    conversationData.CurrentState = PwdResetConversationStates.AskApproval;
                    await turnContext.SendActivityAsync($"Bilgilerini aldım. Teşekkür ederim. Şimdi onayına ihtiyacım var.");

                    await turnContext.SendActivityAsync($"Kullanıcı adı :{userProfile.UserName}, email:{userProfile.Email}. Bu bilgiler ile şifreni resetlemek istediğinden emin misiniz?");
                }
                else
                {
                    await turnContext.SendActivityAsync($"{userProfile.UserName} emailini tekrar girebilir misin?");
                }
                break;

            case Enums.PwdResetConversationStates.AskApproval:
                if (ApprovalValidator.Validate(inputText))
                {
                    if (ApprovalValidator.IsApprooved(inputText))
                    {
                        conversationData.CurrentState = PwdResetConversationStates.Completed;
                        //EXCEL BAŞLANGIÇ
                        Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();
                        Excel.Workbook    xlWorkBook;
                        Excel.Worksheet   xlWorkSheet;
                        object            misValue = System.Reflection.Missing.Value;

                        xlWorkBook  = xlApp.Workbooks.Add(misValue);
                        xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);

                        xlWorkSheet.Cells[1, 1] = "Username";
                        xlWorkSheet.Cells[1, 2] = "Email";
                        xlWorkSheet.Cells[2, 1] = userProfile.UserName;
                        xlWorkSheet.Cells[2, 2] = userProfile.Email;

                        xlApp.DisplayAlerts = false;
                        xlWorkBook.SaveAs("C:\\Users\\BaranOzsarac\\Documents\\" + userProfile.UserName + ".xlsx", Excel.XlFileFormat.xlOpenXMLWorkbook, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue);
                        xlWorkBook.Close(true, misValue, misValue);
                        xlApp.Quit();

                        Marshal.ReleaseComObject(xlWorkSheet);
                        Marshal.ReleaseComObject(xlWorkBook);
                        Marshal.ReleaseComObject(xlApp);
                        //EXCEL BİTİŞ
                        await turnContext.SendActivityAsync($"Onayınızı aldım. En kısa zamanda şifreniz resetlenecektir.");
                    }
                    else
                    {
                        conversationData.CurrentState = PwdResetConversationStates.Cancelled;
                        await turnContext.SendActivityAsync($"İşlem iptal edilmiştir.");
                    }

                    await turnContext.SendActivityAsync($"İyi çalışmalar.");
                }
                else
                {
                    await turnContext.SendActivityAsync($"sizi anlayamadım.");

                    await turnContext.SendActivityAsync($"Kullanıcı adı :{userProfile.UserName}, email:{userProfile.Email}. Bu bilgiler ile şifreni resetlemek istediğinden emin misiniz?");
                }
                break;

            case Enums.PwdResetConversationStates.Cancelled:
            case Enums.PwdResetConversationStates.Completed:
                await turnContext.SendActivityAsync("Yeni bir işlem yapmak için lütfen hangi işlemi yapmak istediğinizi söyleyiniz.");

                conversationData.CurrentState = PwdResetConversationStates.Initial;
                List <string> supportedActions = new List <string>();
                supportedActions.Add("Şifre Resetleme");
                await turnContext.SendActivityAsync(MessageFactory.SuggestedActions(supportedActions));

                break;

            default:
                break;
            }
        }
Пример #11
0
        private async Task <UserPasswordInfo> GetInfoOperations(ITurnContext <IMessageActivity> turnContext, PwdResetConversationStates conversationState, UserPasswordInfo userState)
        {
            UserPasswordInfo userStateFromAdaptiveCard = JsonConvert.DeserializeObject <UserPasswordInfo>(turnContext.Activity.Value.ToString());

            // Kullanıcı adı validasyonu
            if (!UserNameValidator.Validate(userStateFromAdaptiveCard.UserName))
            {
                await turnContext.SendActivityAsync("Kullanıcı adınızı hatalı girdiniz. Lütfen bilgileri tekrar giriniz");

                userStateFromAdaptiveCard.Counter++;
                if (userStateFromAdaptiveCard.Counter < 3)
                {
                    Activity t = new Activity();
                    t.Type        = ActivityTypes.Message;
                    t.Attachments = new List <Attachment>()
                    {
                        CreateAdaptiveCardUsingJson()
                    };
                    await turnContext.SendActivityAsync(t);
                }
                else
                {
                    await turnContext.SendActivityAsync("3 kez hatalı giriş yaptınız.");

                    conversationState.CurrentState = PdwResetStates.Completed;
                }
            }
            else if (!EmailValidator.Validate(userStateFromAdaptiveCard.Email))
            {
                await turnContext.SendActivityAsync("Email bilgisini hatalı girdiniz. Lütfen bilgileri tekrar giriniz");

                userStateFromAdaptiveCard.Counter++;
                if (userStateFromAdaptiveCard.Counter < 3)
                {
                    Activity t = new Activity();
                    t.Type        = ActivityTypes.Message;
                    t.Attachments = new List <Attachment>()
                    {
                        CreateAdaptiveCardUsingJson()
                    };
                    await turnContext.SendActivityAsync(t);
                }
                else
                {
                    await turnContext.SendActivityAsync("3 kez hatalı giriş yaptınız.");

                    conversationState.CurrentState = PdwResetStates.Completed;
                }
            }
            else if (!ApplicationValidator.Validate(userStateFromAdaptiveCard.Application))
            {
                await turnContext.SendActivityAsync("Application bilgisini hatalı girdiniz. Lütfen bilgileri tekrar giriniz");

                userStateFromAdaptiveCard.Counter++;
                if (userStateFromAdaptiveCard.Counter < 3)
                {
                    Activity t = new Activity();
                    t.Type        = ActivityTypes.Message;
                    t.Attachments = new List <Attachment>()
                    {
                        CreateAdaptiveCardUsingJson()
                    };
                    await turnContext.SendActivityAsync(t);
                }
                else
                {
                    await turnContext.SendActivityAsync("3 kez hatalı giriş yaptınız.");

                    conversationState.CurrentState = PdwResetStates.Completed;
                }
            }
            else
            {
                await turnContext.SendActivityAsync($"{userStateFromAdaptiveCard.UserName} için şifreniz resetlenecektir. Onaylıyor musunuz?");

                conversationState.CurrentState = PdwResetStates.GetApproval;
            }
            return(userStateFromAdaptiveCard);
        }