2017-09-02 107 views
-1

我已將Asp.Net身份框架添加到我從前端調用的WebAPI中。成功登錄後登錄管理器用戶仍然顯示爲退出?

註冊一個帳戶(並看到它在數據庫中正確顯示)我與用戶的用戶名和密碼登錄後,結果是成功的,但用戶沒有按照經理的跡象簽署?

我已經使用本例使用cookie認證嘗試:https://docs.microsoft.com/en-us/aspnet/core/security/authentication/cookie?tabs=aspnetcore2x(增加代碼段給的WebAPI)和標誌,其中發生在的WebAPI控制器動作運行此:

 var result = await signInManager.PasswordSignInAsync 
              (username, password, 
              true, false); //succeeded 
     await HttpContext.SignInAsync("MyCookieAuthenticationScheme", User); 

回答

1

documentationBaseController解釋User屬性:

獲取或設置與執行操作關聯的用戶的System.Security.Claims.ClaimsPrincipal。

這表明User被提前確定的動作被執行,因此簡單地表示先發起請求(其中,如果你使用的密碼符號插件極有可能將是一個身份驗證的用戶)的用戶。

在Github上issue圍繞類似的場景旋轉,大衛·福勒解釋說:

...運行中的符號不​​改變當前請求的用戶主體。只有在cookie或持票人標記(或任何類型的身份驗證需要創建身份標識)設置時,纔會發生傳入請求。

事實上,IdentityResult.Succeededtrue應該足以驗證用戶已經簽署了,因爲這隻會是false在操作的時候符號失敗。如果您想在成功登錄後使用User媒體資源做進一步處理,我建議您重定向到另一個操作,由此下一個請求將包含用戶的登錄信息。

+0

叫「IsSignedin」也來了假不幸的是隨後的請求...... – tweetypi

+0

我要補充的是,用戶帳戶被在不同的調用前端一個的WebAPI管理,也許這會影響它的行爲? – tweetypi

+0

您是使用Cookie身份驗證還是讓您擁有一個不記名令牌? –

相關問題