Вопрос об AccountController и _LoginPartial в примере проекта - PullRequest
0 голосов
/ 31 октября 2019

В настоящее время я знакомлюсь как с платформой mvc, так и с учетными данными Azure B2C. Цель состоит в том, чтобы реализовать некоторую логику, представленную в примере проекта, в существующем проекте. Прежде чем подробно рассказать о своих проблемах с собственным проектом, я не смог выяснить следующее:

Предоставленный пример приложения (см. https://github.com/Azure-Samples/active-directory-b2c-dotnet-webapp-and-webapi) содержит класс AuthController.cs, который предоставляетлогика входа / выхода и т. д. Методы в AuthController, по-видимому, вызываются при использовании частичного представления _LoginPartial, например,

@if (Request.IsAuthenticated)
else
{
    <ul class="nav navbar-nav navbar-right">
        <li>@Html.ActionLink("Sign up / Sign in", "SignUpSignIn", "Account", routeValues: null, htmlAttributes: new { id = "signUpSignInLink" })</li>
    </ul>
}

Метод входа в AccountController принимает аргумент string redirectUrlНапример,

public void SignUpSignIn(string redirectUrl)
        {
            redirectUrl = redirectUrl ?? "/";

            // Use the default policy to process the sign up / sign in flow
            HttpContext.GetOwinContext().Authentication.Challenge(new AuthenticationProperties { RedirectUri = redirectUrl });
            return;
        }

Теперь контроллер кажется недоступным при отладке, поэтому я не могу понять, откуда передается параметр redirectUrl. Причина в том, что я хотел бы реализоватьметод SignUpSignIn в уже существующем классе контроллера. Какова связь между частичным классом и контроллером и откуда я могу получить это redirectUrl. Извините, если мой вопрос кажется тривиальным, но я в настоящее время делаю переходот классического ASP.NET до MVC. Заранее благодарим за ваши объяснения.

С уважением (и хапpy Halloween)

Sas

1 Ответ

0 голосов
/ 01 ноября 2019

Вам необходимо настроить имя основного домена, на котором вы размещаете свое приложение, в качестве URL-адреса ответа при регистрации AAD для своего приложения и передать его как redirect_uri при перенаправлении на AAD, чтобы позволить пользователю выполнить вход.

AAD будет перенаправлять токен доступа только на URL-адреса, указанные в качестве URL-адресов ответа при регистрации приложения в AAD.

Так что в этом случае для redirectUrl было установлено значение "https://localhost:44316/". Контроллерполучает значение redirectUrl из файла web.config.

Оно должно соответствовать URL-адресу ответа, настроенному в Azure AD.

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