我有一些「開箱即用」 .NET驗證碼:淨Owin身份驗證失敗......在一個奇怪的方式
Dim manager = Context.GetOwinContext().GetUserManager(Of ApplicationUserManager)()
Dim signinManager = Context.GetOwinContext().GetUserManager(Of ApplicationSignInManager)()
Dim result = signinManager.PasswordSignIn(Email.Text, Password.Text, RememberMe.Checked, shouldLockout := False)
Select Case result
Case SignInStatus.Success
IdentityHelper.RedirectToReturnUrl(Request.QueryString("ReturnUrl"), Response)
Exit Select
我有本地的,Facebook和谷歌認證所有工作。
現在,非常奇怪的部分。
用戶1登錄,沒問題
用戶2個日誌中...返回 「SignInStatus.Success」,而是 「HttpContext.Current.User.Identity」 是什麼。
但是等待!還有更多!
如果我打開並保存web.config(不作任何更改),用戶2現在可以登錄! 現在我有2個登錄的用戶,第三個不一樣:無法登錄,直到我保存web.config文件(這將重新啓動應用程序池)
所以,問題是:跆拳道是怎麼回事?
還在這裏敲我的頭。我的開發機器上發生的情況與服務器上的情況相同。您必須在每個用戶登錄後或下一個用戶失敗時重新啓動應用程序池 –
另請注意,在以「用戶2」身份登錄時,如果輸入錯誤密碼,則它會失敗。如果我註冊一個新用戶,它也表現出相同的行爲...除非我第一次重新啓動應用程序池 –
,否則新用戶不會登錄。這裏有兩件事:(1)您似乎只是使用Identity認證框架,你可能不需要OWin,除非你在Facebook和Google上引用了OAuth;沒有你的其他代碼,我無法分辨你需要的Owin在哪裏; (2)你是如何註冊ApplicationUserManager的,只要你把它註冊爲singleton? – sowen