ASP.NetCore基于弹出式认证?
创始人
2024-09-17 22:00:51
0

在ASP.Net Core中,可以使用基于弹出式认证来实现用户认证。下面是一个基本示例:

1.在Startup.cs文件的ConfigureServices方法中添加以下代码:

services.AddAuthentication(options => { options.DefaultScheme = "CookieAuthentication"; options.DefaultChallengeScheme = "CustomScheme"; }) .AddCookie("CookieAuthentication", options => { options.LoginPath = "/Users/Login"; }) .AddOAuth("CustomScheme", options => { options.ClientId = ""; options.ClientSecret = ""; options.CallbackPath = new PathString("/oauth/callback"); options.AuthorizationEndpoint = ""; options.TokenEndpoint = ""; options.Scope.Add(""); options.SaveTokens = true;

    options.ClaimActions.MapJsonKey(ClaimTypes.NameIdentifier, "id");
    options.ClaimActions.MapJsonKey(ClaimTypes.Name, "username");
    options.ClaimActions.MapJsonKey(ClaimTypes.Email, "email");
});

2.在Startup.cs文件的Configure方法中添加以下代码:

app.UseAuthentication();

3.在控制器中添加以下代码,以在用户单击“登录”按钮时触发基于弹出式认证的流程:

[AllowAnonymous] public IActionResult Login(string returnUrl = "/") { var redirectUrl = Url.Action("Callback", "OAuth", new { ReturnUrl = returnUrl }); var properties = signInManager.ConfigureExternalAuthenticationProperties("CustomScheme", redirectUrl);

return Challenge(properties, "CustomScheme");

}

4.在控制器中添加以下代码,以在用户输入凭据并授权后处理回调:

public async Task Callback(string returnUrl = "/") { var result = await signInManager.ExternalLoginSignInAsync("CustomScheme", "", false);

if (result.Succeeded)
{
    return Redirect(returnUrl);
}

var info = await signInManager.GetExternalLoginInfoAsync();

if (info == null)
{
    return RedirectToAction("Login");
}

var user = new ApplicationUser
{
    UserName = info.Principal.FindFirstValue(ClaimTypes.Name),
    Email = info

相关内容

热门资讯

必备科技!UU Games辅助... UU Games辅助器是一款可以让一直输的玩家,快速成为一个“必胜”的ai辅助神器,有需要的用户可以...
透视透视挂!蜀山四川小程序辅助... >>您好:蜀山四川小程序辅助开挂确实是有挂的,很多玩家在这款蜀山四川小程序辅助开挂游戏中打牌都会发现...
玩家必看攻略!雀友软件脚本辅助... 您好:这款雀友软件脚本辅助器游戏是可以开挂的,确实是有挂的,很多玩家在这款雀友软件脚本辅助器游戏中打...
透视教学!奇迹山西辅助器,反杀... 透视教学!奇迹山西辅助器,反杀新大厅辅助,新2026教程(真的有挂)-哔哩哔哩>>您好:软件加薇13...
2分钟细说!微信西楚辅助,德州... 微信西楚辅助开挂教程视频分享装挂详细步骤在当今的网络游戏中,微信西楚辅助作为一种经典的娱乐方式,吸引...
每日必看推荐!青橙竞技辅助器,... 青橙竞技辅助器是一款可以让一直输的玩家,快速成为一个“必胜”的ai辅助神器,有需要的用户可以加我微信...
玩家必看教程!多乐游戏脚本,红... 较多好评“微乐万能挂官网”开挂(透视)辅助教程 了解更多开挂安装加(136704302)微信号是一款...
科技通报!九江讨赏辅助,hhp... 科技通报!九江讨赏辅助,hhpoker辅助,爆料教程(有挂规律)-哔哩哔哩>>您好:软件加13670...
带你了解!赣牌圈挂安装图解,四... 【亲,四川熊猫辅助软件下载 这款游戏可以开挂的,确实是有挂的,很多玩家在这款四川熊猫辅助软件下载中打...
透视科技!九九山城辅助,hh ... 九九山城辅助是一款可以让一直输的玩家,快速成为一个“必胜”的ai辅助神器,有需要的用户可以加我微信(...