2017-09-15 204 views
0

我嘗試用abp頁面打開一個新的winForm。我的用戶已經通過ABP LogInManger在應用程序上登錄,並存儲了我的登錄結果。Abp從WinForm瀏覽

因此,當我用webBrowser組件打開新窗體時,我嘗試通過的登錄無效。

進行登陸我嘗試:

  • OAuthBearerAuthenticationOptions OAuthBearerOptions {獲得;組; }但它仍然爲空的對象。我需要初始化一些Owin或者不是正確的方法?
  • 我嘗試用用戶名和密碼進行重新認證,並把頭部與承載,但不工作

任何想法來解決這個問題?

我寫一個簡單的情況下,更詳細瞭解我的解決方案: - WinForm的淨4.6.1 - 基於Web的AbpBolierplate

應用4.6.1

我們會從舊的.NET解決方案創建一個移植並添加一些新的功能。關於新功能的用戶界面是在Abp網站上,而不是在WinForm上,所以爲了讓用戶使用這個新功能,我們打開webBrowser嵌入(或不),我們嘗試通過令牌進行身份驗證。 右今天我們談論我們其他collegue和解決方案能夠以這種方式做:

  • 創建基於Web的自定義控制器,使得它交令牌
  • 驗證用戶控制器內,並重定向到請求
+0

看看[MCVE]。 –

+0

好的我準備下周 – andmattia

回答

0

這個問題還沒有一個簡短和正確的答案。我會盡力引導你解決問題的大綱;

您沒有提及您是使用MVC還是使用Angular!但是如果你使用角度更容易。只需在您的WinForm中創建一個RestApi客戶端。使用Http Post對「api/TokenAuth/Authenticate」進行身份驗證。存儲令牌並在其過期前進行刷新。

將應用程序服務用作WebApi端點。爲每個請求添加身份驗證頭(例如:承載xxxxxxx_token_xxxxx)。

如果您使用的是MVC,那麼您可以創建自己的WebApi來驗證和使用所需的服務。

長話短說;使用WebBrowser進行身份驗證並使用aspnetboiler網站並不是一個方便的方式,因爲您必須處理cookie。最佳做法是將WebApi用於您的用例。

+0

Thk Alper可能我的問題不清楚。我的Web應用程序具有所有必要的API,以允許我的獲勝表單進行身份驗證,但我需要使用它來通過Web瀏覽器進行身份驗證。我在我的問題上添加一個註釋來澄清它們。 – andmattia