[英].NET Core MVC: validate external login without creating account
我想利用Microsoft.AspNetCore.Authentication.MicrosoftAccount的在.NET核心MVC應用程序作為解釋在這里 ,但我想跳過存儲層,從而使用戶不輸入到數據庫中。
我想要實現的是:好的,我的用戶只是外部Microsoft帳戶,我不對其進行任何管理,我只是讓他們登錄到該應用程序並以某種方式(列表或其他方式)檢查哪些是允許的人(例如john@boo.com可以登錄,並且由於他的身份已通過Microsoft帳戶驗證,因此他可以輸入)。
我要做的是從典型的
dotnet new mvc --auth Individual
他們對其進行了修改,以支持Microsoft帳戶,並且效果良好。
但是,我想繞開在數據庫中創建用戶的過程,而只是登錄他。我嘗試了以下操作:
// GET: /Account/ExternalLoginCallback
[HttpGet]
[AllowAnonymous]
public async Task<IActionResult> ExternalLoginCallback(string returnUrl = null, string remoteError = null)
{
if (remoteError != null)
{
ModelState.AddModelError(string.Empty, $"Error from external provider: {remoteError}");
return View(nameof(Login));
}
var info = await _signInManager.GetExternalLoginInfoAsync();
if (info == null)
{
return RedirectToAction(nameof(Login));
}
var email = info.Principal.FindFirstValue(ClaimTypes.Email);
var user = new ApplicationUser { UserName = email, Email = email };
// var result = await _userManager.CreateAsync(user);
await _signInManager.SignInAsync(user, isPersistent: false);
_logger.LogInformation(3, "Microsoft account logged in.");
return RedirectToLocal(returnUrl);
}
但是如果我不這樣做
_userManager.CreateAsync
它慘敗:-S
那么,有沒有辦法實現這一目標,或者我正在嘗試的工作完全違反了身份原則?
謝謝!
本文顯示了如何在沒有ASP.NET身份(即沒有數據庫)的情況下使用ASP.NET OAuth提供程序。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.