0

我無法弄清楚,但我有兩個MVC項目,其中包含Single Sign On登錄,我需要重新設置種子,並且在種子之後,userStore變量返回空值。MVC var userStore = new UserStore <ApplicationUser>(db);返回null

這是我的代碼(注意,DB工作正常,並發現我所有的表,也是AspNetUsers表):

private ApplicationDbContext db = new ApplicationDbContext(); 

,並在指數法(的UserManager行拋出,因爲userStore具有空值異常):

 var userStore = new UserStore<ApplicationUser>(db); 
     var userManager = new UserManager<ApplicationUser>(userStore); 
     var userId = User.Identity.GetUserId(); 
     var user = userManager.FindById(userId); 

我haven't改變的工作溶液和最新的種子之間代碼的單個行,但我加入最後兩個種子之間的SSO配置。

編輯:

嘗試重新啓動計算機後問題仍然存在,但是當我嘗試使用其他用戶身份登錄,它工作正常。當試圖與第一用戶登錄我又得到另一個錯誤:

The provided anti-forgery token was meant for a different claims-based user than the current user. 

於是,我在「的InPrivate窗口」和我得到的第一個用戶,但任何其他用戶原來的問題得到防僞錯誤代替。

編輯2:

試圖再次運行該項目,並出現原來的錯誤對於第一個用戶,但我嘗試登錄,在未來投防僞錯誤。

之後,嘗試登錄與另一個用戶,第一個用戶也會引發防僞造錯誤。

編輯3:

此特定行爲似乎與IE連接。在Chrome和Firefox中,我得到了原始錯誤,但我不能以登錄或用戶順序的任何組合方式複製任何防僞錯誤,但第一位用戶不斷獲得原始異常。

所以我想這是任何瀏覽器的問題的原始錯誤。

編輯4:

因爲我知道的準確代碼行引起該問題,我想我可以放心地假設在某種程度上是與以下。我可以在以下設置斷點:

 var userStore = new UserStore<ApplicationUser>(db); 
     var userManager = new UserManager<ApplicationUser>(userStore); 

,但可以不再設置在這條線斷點:

 var userId = User.Identity.GetUserId(); 

回答

0

終於找到另一個線程我的解決方案。我禁用此選項:

Project Properties> Build> Optimize code 

它固定兩個原來的問題,也是問題與斷點

快結束的時候
相關問題