Автоматический вход в систему из учетных данных, основанных на URL

#c# #webforms #.net-4.0

#c# #веб-формы #.net-4.0

Вопрос:

c #, .net4, webforms

Я создаю, если кто-то забудет пароль. Системный администратор может отправить ссылку на электронную почту клиентов, они могут щелкнуть по ней, войти в систему и заставить их обновить свой профиль. У меня все работает и проверяется. Теперь я не понимаю (все еще читаю), как создать HttpContext.Current.User.Идентификация.IsAuthenticated == true; после того, как мой метод вернет true, что пользователь проверен, и разрешите ввести информацию из URL-адреса этого пользователя. Я знаю, что что-то упускаю или не понимаю, как это работает.

В любом случае, спасибо за помощь

Комментарии:

1. Пожалуйста, предоставьте некоторый код — как выглядит ваш метод, который вы хотите установить HttpContext.Current.User.Identity.IsAuthenticated == true; ?

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

3. Это я рассмотрел. Он зашифрован. Просто взглянув на URL-адрес, вы не узнаете, что это такое, Vignesh.N

4. Я думал, что мне просто нужно, чтобы он установил FormsAuthentication. SetAuthCookie(verifiedUser, true); Но пользователь. Идентификация. Значение IsAuthenticated по-прежнему равно false

5. Я понимаю. Если я обновил страницу. Я смог войти в систему .. странно .. как будто он не видит его при первой загрузке

Ответ №1:

Если кому-то это нужно

 if (verifiedUser != "0")
{
    //if user is verified
    FormsAuthentication.SetAuthCookie(verifiedUser, true);
    var LoginType = HttpContext.Current.User.Identity.AuthenticationType;
    if (!User.Identity.IsAuthenticated)
    {
        Response.Redirect(Request.RawUrl);
    }
}
  

Работает для моей проблемы.