0

ASP.NET 5 Web アプリケーション テンプレートを使用して、アプリに Microsoft 認証を導入しようとしています。

デフォルトのテンプレートでは、ユーザーはログイン リンクから_LoginPartial.cshtmlログイン ページに移動し、そこで希望の認証プロバイダーを選択します。Microsoft 認証のみを受け入れたいので_LoginPartial.cshtml、ユーザーをログインさせます。

修正しました _LoginPartial.cshtml

<ul class="nav navbar-nav navbar-right"> @*<li><a asp-controller="Account" asp-action="Register">Register</a></li>*@ <li><a asp-controller="Account" asp-action="ExternalLogin">Log in</a></li> </ul>

のプロバイダーパラメーターも変更しましたAccountController ExternalLogin

        public IActionResult ExternalLogin(string provider="Microsoft", string returnUrl = null)
    {
        // Request a redirect to the external login provider.
        var redirectUrl = Url.Action("ExternalLoginCallback", "Account", new { ReturnUrl = returnUrl });
        var properties = _signInManager.ConfigureExternalAuthenticationProperties(provider, redirectUrl);
        return new ChallengeResult(provider, properties);
    }

しかし、私の場合 ExternalLoginは呼び出されず、空白のページ

http://localhost:52711/Account/ExternalLogin返されます。

私は何を間違っていますか?

4

1 に答える 1

0

ログインリンクボタンをフォームに置き換えることでこれを解決しました

    <form asp-controller="Account" asp-action="ExternalLogin" method="post" asp-route-returnurl="@ViewData["ReturnUrl"]" class="navbar-right">
    <button type="submit" class="btn btn-link navbar-btn navbar-link" name="provider" value="Microsoft" title="Log in">Log In</button>
</form>
于 2016-01-10T01:30:06.437 に答える