在我的asp.net核心應用程序中,用戶需要使用Google OAuth登錄。使用VS2017生成的代碼並啓用Google身份驗證,此部分工作正常。如何刪除asp.net身份管理數據庫表?
我遇到的問題是,默認情況下,應用程序會創建一堆與asp.net用戶和角色相關的數據庫表。我真的不需要在這些表格中保存任何信息。我只關心電子郵件和名稱,並通過OAuth獲取這兩個值。
如何完全禁用ASP.NET自己的身份管理?
默認生成的代碼定義AccountController
類的方法ExternalLoginCallback
。相關的行是:
var info = await _signInManager.GetExternalLoginInfoAsync();
var result = await _signInManager.ExternalLoginSignInAysnc(...);
return RedirectToLocal(returnUrl);
我猜我需要擺脫第二行。它是否正確?
最後,我仍然需要一個ApplicationUser
的實例,我應該可以從代碼的任何部分訪問它。我將它存儲在會話對象中還是有更好的方法?問候。
實例非常感謝您的幫助。但是,它看起來像是在調用_signInManager.GetExternalLoginAsync和_signInManager,ExternalLoginSignInAsync之間需要的東西。否則,第二次呼叫失敗。以前,中間有兩個調用 - _userManager.CreateAsync和_userManager.AddLoginAsync。問候。 – Peter
@Peter如果您使用獨立Cookie身份驗證,則不應使用signInManager或userManager,因爲它們是ASP.NET Core Identity的一部分。你可以參考[這個項目](https://github.com/aspnet-contrib/AspNet.Security.OAuth.Providers/tree/experimental/samples/Mvc.Client)來了解如何獲得所需的信息。 –
謝謝你的幫助。我們的要求是,用戶必須使用Google oAuth進行身份驗證。有沒有更簡單的方法來運行oAuth而不使用siginManager調用?謝謝。 – Peter