Политика сброса Azure B2C (забытый пароль) - экран сброса, когда неавторизованный пользователь пытается получить доступ к странице, требующей авторизации - PullRequest
0 голосов
/ 22 мая 2018

Я добавлю больше деталей позже, когда у меня будет доступ к моему ноутбуку.Но, по сути, проблема с моим сайтом mvc, который использует Azure b2c AD, заключается в следующем.

Я настроил политику входа в систему и политику сброса.Это довольно стандартная настройка, которую можно найти на вики-страницах Microsoft.Политика сброса отлично работает, когда пользователь нажимает на ссылку забытого пароля, найденную в шаблоне входа, который выходит из коробки.Проблема заключается в том, что ..... если пользователь вышел из системы и пытается получить доступ к защищенному ресурсу (то есть к тому, на котором есть атрибут авторизации), он перенаправляется на экран сброса пароля вместо экрана входа (другими словами ..... политика сброса срабатывает, даже если пользователь не нажал на забытый пароль. Кто-нибудь еще испытывал это?

1 Ответ

0 голосов
/ 23 мая 2018

Хорошо, мне удалось заставить его работать.

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

Приведенный ниже фрагмент кода привел к некорректному поведению, которое я описал в своем вопросе.

public void ConfigureAuth(IAppBuilder app)
{
    app.UseCookieAuthentication(new CookieAuthenticationOptions { CookieManager = new SystemWebCookieManager() });
    app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);

    app.UseOpenIdConnectAuthentication(CreateOptionsFromPolicy(SignUpSignInPolicyId));
    app.UseOpenIdConnectAuthentication(CreateOptionsFromPolicy(ResetPolicyId));   
}

Хотя обмен последних двух строк таким образом, что SignUpSignInPolicy появился последним, приносит удовольствие!

public void ConfigureAuth(IAppBuilder app)
{
    app.UseCookieAuthentication(new CookieAuthenticationOptions { CookieManager = new SystemWebCookieManager() });
    app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);

    app.UseOpenIdConnectAuthentication(CreateOptionsFromPolicy(ResetPolicyId));
    app.UseOpenIdConnectAuthentication(CreateOptionsFromPolicy(SignUpSignInPolicyId));

}

...