Azure Аутентификация AD бесконечна L oop, слишком много запросов - PullRequest
2 голосов
/ 11 января 2020

Я создал приложение Web Forms в ASP. Net и использую Azure Аутентификацию AD, чтобы пользователи могли входить со своими учетными данными Microsoft и проходить надлежащую аутентификацию.

Я внимательно следил за следующим учебником, предоставленным Microsoft: https://docs.microsoft.com/en-us/azure/active-directory/develop/tutorial-v2-asp-webapp

Приложение работает так, как задумано, за исключением одной раздражающей проблемы. Иногда пользователи получают следующее сообщение об ошибке «ERR_TOO_MANY_REDIRECTS» «Попробуйте очистить куки». Очистка файлов cookie и повторный вход в систему решают проблему, но, очевидно, это не идеально.

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

У меня есть мастер-страница, а в коде я запустив следующий код, чтобы убедиться, что пользователь прошел аутентификацию при навигации по приложению

protected void Page_Load(object sender, EventArgs e)
        {
            //Check if user is authenticated on each page request
            if (!Request.IsAuthenticated)
            {
                HttpContext.Current.GetOwinContext().Authentication.Challenge(
                    new AuthenticationProperties { RedirectUri = "/home.aspx" },
                    OpenIdConnectAuthenticationDefaults.AuthenticationType);
            }
            else
            {
                try
                {
                    //Check if connection string is set
                    if (Session["ConnectionString"].ToString() == "")
                    {
                        Response.Redirect("home.aspx"); //If empty redirect user to Home page to set connection string
                    }

                    //Get data for current user and display their username and email address
                    ClaimsPrincipal cp = ClaimsPrincipal.Current;
                    userName.InnerText = cp.FindFirst(ClaimTypes.GivenName).Value + " " + cp.FindFirst(ClaimTypes.Surname).Value;
                    email.InnerText = HttpContext.Current.User.Identity.Name;
                } 
                catch(Exception ex)
                {

                }
            }  
        }

В файле WebConfig у меня URL перенаправления, установленный как

<add key="RedirectUrl" value="https://mywebsite.com/auth/openid/return" />

и в Azure Portal Я использовал этот же RedirectUrl

Любая идея, что может вызывать случайную проблему бесконечного l oop, которую получают пользователи?

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