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

相关内容

热门资讯

wpk ai辅助!红龙扑克是不... wpk ai辅助!红龙扑克是不是有问题,wepoke挂真的假的,2025新版总结(有挂辅助挂)1)w...
aapoker透明挂!poke... aapoker透明挂!pokerworld有挂吗,wepokeapp下载教程,实用技巧(有挂总结)您...
wepoke辅助技巧!德州ai... 一、德州ai人工智能简介了解软件请加微:136704302德州ai人工智能是一款在线扑克游戏平台,玩...
aapoker猫腻!poker... aapoker猫腻!pokermaster是不是有外挂,微扑克使用方法,玩家教你(有挂教学)1、aa...
aapoker发牌机制!aap... 1、aapoker发牌机制!aapoker可以开挂吗,红龙扑克好友桌,德州论坛(有挂教学);代表性(...
wepoke辅助有挂!云扑克辅... 您好,wepoke辅助有挂这款游戏可以开挂的,确实是有挂的,需要了解加微【136704302】很多玩...
德州AI智能辅助机器人!wpk... 德州AI智能辅助机器人!wpk发牌,wpk的下风机制,必备教程(有挂了解)1、不需要AI权限,帮助你...
微扑克系统发牌规律!云扑克确实... 微扑克系统发牌规律!云扑克确实真的有挂,pokerx人工智能,wpk教程(有挂规律)1、许多玩家不知...
wpk俱乐部!wpk怎么玩胜率... wpk俱乐部!wpk怎么玩胜率高,微扑克有稳赢的打法,德州教程(有挂攻略)1、wpk俱乐部ai机器人...
德扑数据软件!wpeoke软件... 德扑数据软件!wpeoke软件下载,wepower透视辅助,切实教程(有挂黑科技)是一款可以让一直输...