gpt4 book ai didi

asp.net - 如何授权在 Asp.Net MVC 中使用外部登录登录的用户

转载 作者:行者123 更新时间:2023-11-30 05:27:18 26 4
gpt4 key购买 nike

简介我在应用程序中使用授权,注册用户根据某些操作/ Controller 的角色获得授权,即

[Authorize(Roles = "Developer,Admin,User")]

我的问题是,如果用户使用外部登录方法(如 facebook 或 google)登录怎么办,如何授权他。

为了实现这个目标应该做些什么或可以做些什么,如果有人知道,请提供帮助。感谢您的宝贵时间。

最佳答案

这样做

public async Task<ActionResult> ExternalLoginConfirmation(ExternalLoginConfirmationViewModel model, string returnUrl)
{
var user = new ApplicationUser { UserName = model.Email, Email = model.Email, DisplayName=model.Displayname };
var result = await UserManager.CreateAsync(user);
if (result.Succeeded)
{
result = await UserManager.AddLoginAsync(user.Id, info.Login);
if (result.Succeeded)
{
UserManager.AddToRole(user.Id, "ExternalUser");// This is the important line

await SignInManager.SignInAsync(user, isPersistent: false, rememberBrowser: false);

return RedirectToLocal(returnUrl);
}
}

}

只要用户通过外部服务登录,他就会自动映射到“外部用户”角色。现在你可以这样授权了

[Authorize(Roles = "Externaluser")]

关于asp.net - 如何授权在 Asp.Net MVC 中使用外部登录登录的用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39017086/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com