Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / ASP.NET Identity / 19 сообщений из 19, страница 1 из 1
10.02.2015, 07:29
    #38875326
bald56rus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASP.NET Identity
Всем привет. пытаюсь разобраться в данной системе. на сколько я понял атрибут "Email" является обязательным? подскажите как переделать что бы для регистрации/авторизации можно было использовать другой атрибут например "0123" и что бы "Email" был не обязательным полем, приложение будет использоваться в локальной сети. заранее спасибо
...
Рейтинг: 0 / 0
10.02.2015, 09:36
    #38875426
bald56rus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASP.NET Identity
некоректно написал под атрибутом "0123" подразумевается что то типа public string Login. т.е. хочу что бы авторизация и регистрация была по логину а email не был обязательным полем
...
Рейтинг: 0 / 0
10.02.2015, 13:42
    #38875883
bald56rus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASP.NET Identity
что никто не может подсказать в какую сторону капнуть, или идея не жизнеспособна и все поэтому молчат?!
...
Рейтинг: 0 / 0
10.02.2015, 14:06
    #38875917
Irbis2014
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASP.NET Identity
bald56rus,
В валидаторе пользователя нужно установить RequireUniqueEmail = false
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
...
 public static ApplicationUserManager Create(IdentityFactoryOptions<ApplicationUserManager> options, IOwinContext context) 
        {
            var manager = new ApplicationUserManager(new UserStore<ApplicationUser>(context.Get<ApplicationDbContext>()));
            // Настройка логики проверки имен пользователей
            manager.UserValidator = new UserValidator<ApplicationUser>(manager)
            {
                AllowOnlyAlphanumericUserNames = false,
                RequireUniqueEmail = false
            };
...


Добавить в LoginViewModel и RegisterViewModel свойства Name и убрать свойство Email.
Отредактировать методы действия и представления регистрации и входа.
...
Рейтинг: 0 / 0
10.02.2015, 14:11
    #38875927
Andrey1306
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASP.NET Identity
Irbis2014bald56rus,
В валидаторе пользователя нужно установить RequireUniqueEmail = false
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
...
 public static ApplicationUserManager Create(IdentityFactoryOptions<ApplicationUserManager> options, IOwinContext context) 
        {
            var manager = new ApplicationUserManager(new UserStore<ApplicationUser>(context.Get<ApplicationDbContext>()));
            // Настройка логики проверки имен пользователей
            manager.UserValidator = new UserValidator<ApplicationUser>(manager)
            {
                AllowOnlyAlphanumericUserNames = false,
                RequireUniqueEmail = false
            };
...


Добавить в LoginViewModel и RegisterViewModel свойства Name и убрать свойство Email.
Отредактировать методы действия и представления регистрации и входа.

лучше так не делать !!! , зачем в базе не уникальные емайлы ????

Меняйте RegisterViewModel если не нужно емайл


[Required]
[EmailAddress]
[Display(Name = "Електронна пошта")]
public string Email { get; set; }

ну и базу гляньте , что там на Email , тгдд, допустим или нет
...
Рейтинг: 0 / 0
10.02.2015, 14:11
    #38875928
Andrey1306
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASP.NET Identity
ТГДД == NULL
...
Рейтинг: 0 / 0
10.02.2015, 14:19
    #38875939
bald56rus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASP.NET Identity
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
if (ModelState.IsValid)
            {
                var user = new ApplicationUser { UserName = model.Login, Email = model.Email };
                var result = await UserManager.CreateAsync(user, model.Password);
                if (result.Succeeded)
                {
                    var code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id);
                    var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme);
                    await UserManager.SendEmailAsync(user.Id, "Confirm your account", "Please confirm your account by clicking this link: <a href=\"" + callbackUrl + "\">link</a>");
                    ViewBag.Link = callbackUrl;
                    return View("DisplayEmail");
                }
                AddErrors(result);



меняю модель: добавляю логин поле, result.Succeeded возвращает false: Email не может быть пустым.
...
Рейтинг: 0 / 0
11.02.2015, 07:23
    #38876517
bald56rus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASP.NET Identity
Отключил проверку на уникальность "Email" в валидаторе, Irbis2014 спасибо.проверку на уникальность "Email" думаю можно будет сделать через библиотеку JQuery.validate.js всем спасибо
...
Рейтинг: 0 / 0
11.02.2015, 21:25
    #38877412
Andrey1306
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASP.NET Identity
bald56rusОтключил проверку на уникальность "Email" в валидаторе, Irbis2014 спасибо.проверку на уникальность "Email" думаю можно будет сделать через библиотеку JQuery.validate.js всем спасибо

Отключите также проверку на уникальность логина !
...
Рейтинг: 0 / 0
12.02.2015, 07:38
    #38877554
bald56rus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASP.NET Identity
Andrey1306bald56rusОтключил проверку на уникальность "Email" в валидаторе, Irbis2014 спасибо.проверку на уникальность "Email" думаю можно будет сделать через библиотеку JQuery.validate.js всем спасибо

Отключите также проверку на уникальность логина !
напрасно Вы так, в базе поле "Email" является полем необязательным для заполнения, проблема была в "RequireUniqueEmail" при значении в "true" нельзя было поле "Email" оставить пустым, даже при редактировании модели как Вы указали постом выше. я понимаю что невалидный "Email" не есть хорошо, но при регистрации пользователя можно сделать валидацию данного поля средствами JQuery.validate.js(т.е. проверять наличие указанного email в базе). всем спасибо
...
Рейтинг: 0 / 0
12.02.2015, 08:29
    #38877571
Monochromatique
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASP.NET Identity
bald56rus что бы "Email" был не обязательным полем, приложение будет использоваться в локальной сети. заранее спасибо

Откуда вообще берутся такие желания?

А забудет пользователь пароль, какие действия? Дергать админа за штанину?
...
Рейтинг: 0 / 0
12.02.2015, 08:47
    #38877589
bald56rus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASP.NET Identity
Monochromatiquebald56rus что бы "Email" был не обязательным полем, приложение будет использоваться в локальной сети. заранее спасибо

Откуда вообще берутся такие желания?

А забудет пользователь пароль, какие действия? Дергать админа за штанину?

критиковать все горазды, а вариант что у пользователей может не быть почты?! вариант указывать свой внешний(mail, yandex, google)не вариант у пользователей "инета" нет(за очень редким исключение). на корпоративном "серве" заводить для них локальные ящики(тоже тот еще вариант). предложите решение лучше?!
...
Рейтинг: 0 / 0
12.02.2015, 09:48
    #38877634
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASP.NET Identity
bald56rusкритиковать все горазды, а вариант что у пользователей может не быть почты?! вариант указывать свой внешний(mail, yandex, google)не вариант у пользователей "инета" нет(за очень редким исключение). на корпоративном "серве" заводить для них локальные ящики(тоже тот еще вариант). предложите решение лучше?!

Вопрос был поставлен вполне корректно. Забудет пользователь пароль, какие действия? Как раз таки в глобальном интернете можно обойтись без почты, входить через фейсбук или гугл, без почты. В таком случае проблемы с восстановлением пароля нет, так как нет пароля. Внутри корпоративки нет другого способа идентификации пользователя, кроме как через почту. Если у вас админ адекватный, и вменяемый человек, то он заведёт каждому юзеру по почтовому ящику. Если нет, то будет работать почтовым сервером сам, лично. Ало, я пароль забыл. Кто вы? Откуда вы? От чего пароль? Какой логин? А это точно вы?
...
Рейтинг: 0 / 0
12.02.2015, 10:09
    #38877653
bald56rus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASP.NET Identity
если ответил грубо, приношу извинения.

что бы создать ящик необходимо оформить это документально. дело даже не во вменяемости админа а в том что иначе нельзя. политика такая
...
Рейтинг: 0 / 0
12.02.2015, 14:29
    #38878066
Andrey1306
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASP.NET Identity
bald56rusесли ответил грубо, приношу извинения.

что бы создать ящик необходимо оформить это документально. дело даже не во вменяемости админа а в том что иначе нельзя. политика такая

Надо было в модели убрать [Required]
...
Рейтинг: 0 / 0
12.02.2015, 14:34
    #38878081
bald56rus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASP.NET Identity
Andrey1306bald56rusесли ответил грубо, приношу извинения.

что бы создать ящик необходимо оформить это документально. дело даже не во вменяемости админа а в том что иначе нельзя. политика такая

Надо было в модели убрать [Required]
не работает это(изменял я модель), проверка в "валидаторе" происходит
...
Рейтинг: 0 / 0
12.02.2015, 14:35
    #38878083
Andrey1306
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASP.NET Identity
bald56rusAndrey1306пропущено...


Отключите также проверку на уникальность логина !
напрасно Вы так, в базе поле "Email" является полем необязательным для заполнения, проблема была в "RequireUniqueEmail" при значении в "true" нельзя было поле "Email" оставить пустым, даже при редактировании модели как Вы указали постом выше. я понимаю что невалидный "Email" не есть хорошо, но при регистрации пользователя можно сделать валидацию данного поля средствами JQuery.validate.js(т.е. проверять наличие указанного email в базе). всем спасибо

Надо было и в базе разрешить использовать Null для пароля.

Или самому добавлять адреса пусть и фиктивные в поле email базы. типа UserName@contora.com
...
Рейтинг: 0 / 0
12.02.2015, 14:36
    #38878085
Andrey1306
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASP.NET Identity
bald56rusAndrey1306пропущено...


Надо было в модели убрать [Required]
не работает это(изменял я модель), проверка в "валидаторе" происходит

что то не с валидатором, значит
...
Рейтинг: 0 / 0
12.02.2015, 14:39
    #38878093
bald56rus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASP.NET Identity
Andrey1306, вот этот параметр RequireUniqueEmail установленный в true
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / ASP.NET Identity / 19 сообщений из 19, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]