powered by simpleCommunicator - 2.0.41     © 2025 Programmizd 02
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Проблемы с авторизацией
25 сообщений из 43, страница 1 из 2
Проблемы с авторизацией
    #39971443
AspNew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Создал сайт на ASP.Net MVC
Для авторизации использовал ASP.NET Identity 2.0

Проблема такая - люди работают, все нормально. Но в один момент перестает заходить. Т.е. они вводят логин/пароль, ошибок не происходит, а просто на стартовую страницу выкидывает. Чаще такое случается в браузерах Chrome и Yandex. Пользователи пробовали чистить кэш, заходить через поисковую систему, всякое. Кому-то помогало, а кто-то до сих пор не может зайти и вынужден использовать другой браузер.
Я не знаю куда копать. Возможно происходит ошибка где-то, но эта ошибка не обрабатывается, а просто "проскакивает", а по параметрам как будто пользователь не зашел.
Вот фрагмент из AccountController
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
public async Task<ActionResult> Login(LoginViewModel model, string returnUrl)
        {
            if (ModelState.IsValid)
            {
                var user = await UserManager.FindAsync(model.UserName, model.Password);
                if (user != null)
                {
                    // comment
                     await SignInManager.SignInAsync(user, isPersistent: false, rememberBrowser: false);

                }
                else
                {
                    ModelState.AddModelError("", "Неверный логин или пароль");
                }
            } 
            if (!ModelState.IsValid)
            {
                return View(model);
            }

            // Сбои при входе не приводят к блокированию учетной записи
            // Чтобы ошибки при вводе пароля инициировали блокирование учетной записи, замените на shouldLockout: true
            var result = await SignInManager.PasswordSignInAsync(model.UserName, model.Password, model.RememberMe, shouldLockout: false);
            switch (result)
            {
                case SignInStatus.Success:
                    string userId = SignInManager.AuthenticationManager.AuthenticationResponseGrant.Identity.GetUserId();
                    if ((userId == null) || (userId == ""))
                    {
                        return RedirectToAction("Custom", "Error", new { sErr = "Ошибка авторизации" });
                    }
                    TRUserStorage.GetInstance().LoadUser(userId);
                    return RedirectToLocal(returnUrl);
                case SignInStatus.LockedOut:
                    return View("Lockout");
                case SignInStatus.RequiresVerification:
                    return RedirectToAction("SendCode", new { ReturnUrl = returnUrl, RememberMe = model.RememberMe });
                case SignInStatus.Failure:
                default:
                    ModelState.AddModelError("", "Неудачная попытка входа.");
                    return View(model);
            }
        }



А это Startup.Auth.cs
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
public void ConfigureAuth(IAppBuilder app)
        {
            // Настройка контекста базы данных, диспетчера пользователей и диспетчера входа для использования одного экземпляра на запрос
            app.CreatePerOwinContext(ApplicationDbContext.Create);
            app.CreatePerOwinContext<ApplicationUserManager>(ApplicationUserManager.Create);
            app.CreatePerOwinContext<ApplicationSignInManager>(ApplicationSignInManager.Create);

            // Включение использования файла cookie, в котором приложение может хранить информацию для пользователя, выполнившего вход,
            // и использование файла cookie для временного хранения информации о входах пользователя с помощью стороннего поставщика входа
            // Настройка файла cookie для входа
            app.UseCookieAuthentication(new CookieAuthenticationOptions
            {
                AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
                LoginPath = new PathString("/Account/Login"),
                Provider = new CookieAuthenticationProvider
                {
                    // Позволяет приложению проверять метку безопасности при входе пользователя.
                    // Эта функция безопасности используется, когда вы меняете пароль или добавляете внешнее имя входа в свою учетную запись.  
                    OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, ApplicationUser>(
                        validateInterval: TimeSpan.FromMinutes(30),
                        regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager))
                }
            });            
            app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie);
...
Рейтинг: 0 / 0
Проблемы с авторизацией
    #39971536
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AspNew
Т.е. они вводят логин/пароль, ошибок не происходит, а просто на стартовую страницу выкидывает.


Вы описываете проблему как обычный пользователь.
Если вы разработчик, то должны понимать, что этого недостаточно для диагностики проблемы.

У меня всё было -- и всё пропало (с)

Смотрите в логи, что там у вас в логах?
Что в консоле браузера приходит хоть?
Вы вообще их пишите? Насколько детально?
Если нет, то печаль. Бейте в бубен и страдайте :)
...
Рейтинг: 0 / 0
Проблемы с авторизацией
    #39971556
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Протрассируй метод Login своего AccountController, судя по твоей печали у тебя до свитча выполнение даже и не доходит и какой-то факап происходит еще в UserManager.FindAsync(...). А то и вообще модель приходит невалидная. Вообще если в целом, то вся логика метода в целом какая-то странная и неохватываемая с первого взгляда, но проверь, для начала, хотя бы то, что я выше написал.
...
Рейтинг: 0 / 0
Проблемы с авторизацией
    #39971563
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ах, да, оно же у тебя не воспроизводится стабильно, да. Пиши, значит, все шаги метода в лог, с данными, потом, как уто-нибудь поплакатьт придет, что "не лезет", то смотри туда. Моя основная версия, это что браузер присылает в LoginViewModel не логин-пароль, а какую-то неведомую херню - наверное там поверх обычной формы с двумя полями каких-нибудь покемонов на жаваскрипте понаворотили.
...
Рейтинг: 0 / 0
Проблемы с авторизацией
    #39971577
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AspNew
пробовали чистить кэш, заходить через поисковую систему, всякое
ну и желательно почистить куки, а вовсе не кэш. Если другой браузер на этом же компе с этой же учеткой работает, значит куки и/или хранилище. Но, поскольку, тут куки-авторизация, прежде всего надо чистить куки.
...
Рейтинг: 0 / 0
Проблемы с авторизацией
    #39971601
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro
Но, поскольку, тут куки-авторизация, прежде всего надо чистить куки.

У него, как я понимаю, сама форма логина не работает, т.е. до куков дело даже не доходит.
авторони вводят логин/пароль, ошибок не происходит, а просто на стартовую страницу выкидывает.
...
Рейтинг: 0 / 0
Проблемы с авторизацией
    #39971603
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я уже плохо помню работу с SignInManager, немного смущает наличие в одном методе SignInAsync а потом PasswordSignInAsync
...
Рейтинг: 0 / 0
Проблемы с авторизацией
    #39971609
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro
Я уже плохо помню работу с SignInManager, немного смущает наличие в одном методе SignInAsync а потом PasswordSignInAsync

Да я о том же. Мне сдается, что если не предусмотрено каких-то изысков типа 2ФА или банхаммера, то первой части кода должно быть с головой. Вторая же часть кода просто без прихода в сознание скопипащена с какого-то шаблона.

Вот это:
Код: c#
1.
2.
var user = await UserManager.FindAsync(model.UserName, model.Password);
if (user != null)


проверяет верность логинопассворда

А вот это:
Код: c#
1.
await SignInManager.SignInAsync(user, isPersistent: false, rememberBrowser: false);


устанавливает авторизационную куку.
...
Рейтинг: 0 / 0
Проблемы с авторизацией
    #39971612
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Очередной съезд партии телепатов и гадалог объявляю открытым :)
...
Рейтинг: 0 / 0
Проблемы с авторизацией
    #39971659
AspNew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это мой первый сайт вообще, я начал писать и учиться одновременно. Логов я не делал, не знаю как.
От пользователей толков не добьешся, только одна барышня сказала что у нее последняя версия Хром и Вин 10 как у меня, только у меня работает, а у нее перестало.
Identify у меня сгенерирован студией код, я его немого дорабатывал. Сильно не вникал пока.

Лично меня волнует вопрос, почему не происходит возникновение исключительной ситуации? Пришли покемоны вместо логина и пароля, ну где сообщение «неверный логин пароль»? Все как один утверждают что его нет. Обидно что у меня не возникло такой проблемы, но я сижу в Microsoft Edge.
...
Рейтинг: 0 / 0
Проблемы с авторизацией
    #39971694
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AspNew
Это мой первый сайт вообще, я начал писать и учиться
AspNew
Сильно не вникал
AspNew
Пользователи пробовали
меня сильно удивляет это сочетание.


Ну если не вникал, значит пора вникнуть. Вот вопрос для начала: зачем в методе Login два вызова SignIn. может быть дело и в этом.
AspNew
Логов я не делал, не знаю как.
Значит пора узнать и включить. Опять же непонятно, откуда ты знаешь, что
AspNew
ошибок не происходит
если логов нет?
...
Рейтинг: 0 / 0
Проблемы с авторизацией
    #39971796
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AspNew
Это мой первый сайт вообще, я начал писать и учиться одновременно. Логов я не делал, не знаю как.
От пользователей толков не добьешся, только одна барышня сказала что у нее последняя версия Хром и Вин 10 как у меня, только у меня работает, а у нее перестало.
Identify у меня сгенерирован студией код, я его немого дорабатывал. Сильно не вникал пока.

Лично меня волнует вопрос, почему не происходит возникновение исключительной ситуации? Пришли покемоны вместо логина и пароля, ну где сообщение «неверный логин пароль»? Все как один утверждают что его нет. Обидно что у меня не возникло такой проблемы, но я сижу в Microsoft Edge.


Подключите и настройте логи. Это вам поможет в дальнейшем решать множество проблем.
...
Рейтинг: 0 / 0
Проблемы с авторизацией
    #39971827
AspNew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вы были правы, верхний кусок с await UserManager.FindAsync и "Неверный логин или пароль" был лишний. Я сейчас студией сгенерил пустой проект, там нет этого.
Посмотрел сайты где я искал образцы, тоже не было. Такое чувство что я это добавил только ради того чтоб вывести это сообщение...
Типа проверки... Написал человеку у которого точно не заходит, буду ждать результат. Но честно говоря задолбала эта проблема, была бы постоянно ошибка, а то две недели все нормально, а потом бах и все.
С логами я подучусь что и как, сделаю...
...
Рейтинг: 0 / 0
Проблемы с авторизацией
    #39971836
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AspNew
а то две недели все нормально, а потом бах и все.


Это может быть проблема с шифрованием тикета. Для шифрования используется ключик. Плавающие проблемы бывают с этим связано.

Но это всё гадание на кофейной гуще, нужны логи. Не стоит их недооценивать.
...
Рейтинг: 0 / 0
Проблемы с авторизацией
    #39971861
AspNew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVostt
AspNew
а то две недели все нормально, а потом бах и все.


Это может быть проблема с шифрованием тикета. Для шифрования используется ключик.

Вы про это? В webconfig
Код: xml
1.
2.
3.
4.
5.
6.
<machineKey
     validationKey="xxx"
     decryptionKey="xxx"
     validation="SHA1"
     decryption="AES"
    />
...
Рейтинг: 0 / 0
Проблемы с авторизацией
    #39972183
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
Очередной съезд партии телепатов и гадалог объявляю открытым :)


Гнездо
...
Рейтинг: 0 / 0
Проблемы с авторизацией
    #39972204
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AspNew
Вы про это? В webconfig
Код: xml
1.
2.
3.
4.
5.
6.
<machineKey
     validationKey="xxx"
     decryptionKey="xxx"
     validation="SHA1"
     decryption="AES"
    />



Ага. Кстати, почему вы не используете ASP.NET Core?
...
Рейтинг: 0 / 0
Проблемы с авторизацией
    #39972620
AspNew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну я начал писать сайт и изучать ASP.Net этой весной. Сначала хотел вообще на WebForms, потому что был небольгой опыт. Но прочел что это уже устарело, выбрал MVC. Можно сказать почти рандомно , подумал : ну зачем мне кроссплатформенность Core?

Я убрал лишний код в Login, но не помогло. Логи пока не подключил, но буду делать.
...
Рейтинг: 0 / 0
Проблемы с авторизацией
    #39972621
AspNew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVostt
AspNew
а то две недели все нормально, а потом бах и все.


Это может быть проблема с шифрованием тикета. Для шифрования используется ключик. Плавающие проблемы бывают с этим связано.

Но это всё гадание на кофейной гуще, нужны логи. Не стоит их недооценивать.

А вы можете сказать что за проблемы и как решаются?
Я сгенерил ключ в инете на какои то сайтие и вставил в вебконфиг. Вроде как больше ничего.
...
Рейтинг: 0 / 0
Проблемы с авторизацией
    #39972734
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AspNew
подумал : ну зачем мне кроссплатформенность Core


При чём тут кроссплатформенность?
Это не имеет значения.
ASP.NET MVC который вы используете больше не поддерживается и не развивается.
С каждным днём вам будет всё сложнее найти работу с этими знаниями, а через год другой вообще нафиг никому вы с этими знаниями не будете нужны.

Такова реальность. Изучайте ASP.NET Core 3, и пишите на нём.
...
Рейтинг: 0 / 0
Проблемы с авторизацией
    #39972736
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AspNew
А вы можете сказать что за проблемы и как решаются?


Я же сказал, пишите логи.
Вот так решаются.

Не понимаю, почему все настойчиво, с упорством хотят решать задачу путём, может тут поменять? А может здесь? А тут потыкать?

Настоятельно рекомендую решать проблемы, используя средства диагностики. А не методом тыка.
...
Рейтинг: 0 / 0
Проблемы с авторизацией
    #39972779
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
Такова реальность. Изучайте ASP.NET Core 3, и пишите на нём.

Лучше сразу уже ставить превью пятерки и фигачить на нем - она как раз к моменту освоения отдуплится.
...
Рейтинг: 0 / 0
Проблемы с авторизацией
    #39972781
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
Настоятельно рекомендую решать проблемы, используя средства диагностики. А не методом тыка.

++. Настройка логов это первое что должно делаться после создания проекта.
...
Рейтинг: 0 / 0
Проблемы с авторизацией
    #39972828
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat
hVostt
Такова реальность. Изучайте ASP.NET Core 3, и пишите на нём.

Лучше сразу уже ставить превью пятерки и фигачить на нем - она как раз к моменту освоения отдуплится.


В этом особо нет необходимости, там breaking changes не такой, по сравнению с ASP.NET MVC 5 и ниже.
...
Рейтинг: 0 / 0
Проблемы с авторизацией
    #39972829
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat
hVostt
Такова реальность. Изучайте ASP.NET Core 3, и пишите на нём.

Лучше сразу уже ставить превью пятерки и фигачить на нем - она как раз к моменту освоения отдуплится.


В этом особо нет необходимости, там breaking changes не такой, по сравнению с ASP.NET MVC 5 и ниже.
...
Рейтинг: 0 / 0
25 сообщений из 43, страница 1 из 2
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Проблемы с авторизацией
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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