Доступ пользователя к странице входа после аутентификации - PullRequest
0 голосов
/ 13 апреля 2020

Я использую идентификацию для аутентификации в своем приложении, но после аутентификации пользователь может получить доступ к странице входа и регистрации снова!

Метод входа:


var claims = new List<Claim>()
            {
                new Claim(ClaimTypes.NameIdentifier, user.Id.ToString()),
                new Claim(ClaimTypes.Name, user.Fullname),
            };
            var identity = new ClaimsIdentity(claims, CookieAuthenticationDefaults.AuthenticationScheme);
            var principal = new ClaimsPrincipal(identity);

            var properties = new AuthenticationProperties
            {
                IsPersistent = model.RememberMe
            };
            HttpContext.SignInAsync(principal, properties);

            ViewBag.IsSuccess = true;
            if (ReturnUrl != "/")
            {
                return Redirect(ReturnUrl);
            }

            return Redirect("/dashboard");

код запуска:

services.AddAuthentication(options =>
            {
                options.DefaultAuthenticateScheme = CookieAuthenticationDefaults.AuthenticationScheme;
                options.DefaultChallengeScheme = CookieAuthenticationDefaults.AuthenticationScheme;
                options.DefaultSignInScheme = CookieAuthenticationDefaults.AuthenticationScheme;

            }).AddCookie(options =>
            {
                options.LoginPath = "/login";
                options.LogoutPath = "/logout";
                options.ExpireTimeSpan = TimeSpan.FromMinutes(10080);

            });

примечание: я добавил app.UseAuthentication() для настройки метода

1 Ответ

0 голосов
/ 13 апреля 2020

И? Конечно могут. Для просмотра этих страниц нет политик аутентификации / авторизации, поэтому любой может получить к ним доступ, залогинен или нет. Если вы хотите остановить это, просто добавьте проверку в начале действия, например:

if (User.Identity.IsAuthenticated())
    return RedirectToAction("Account");

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...