快捷方式 Microsoft 身份验证
Shortcut Microsoft Authentication
我们正在尝试使用 ASP.NET 5 Web 应用程序模板将 Microsoft 身份验证引入我们的应用程序。
默认模板将用户从 _LoginPartial.cshtml
中的登录名 link 带到他们 select 他们首选的身份验证提供商的登录页面。我们只想接受 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
的provider参数
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
。
我做错了什么?
我通过用表单替换登录 link 按钮解决了这个问题
<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>
我们正在尝试使用 ASP.NET 5 Web 应用程序模板将 Microsoft 身份验证引入我们的应用程序。
默认模板将用户从 _LoginPartial.cshtml
中的登录名 link 带到他们 select 他们首选的身份验证提供商的登录页面。我们只想接受 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
。
我做错了什么?
我通过用表单替换登录 link 按钮解决了这个问题
<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>