从WinForm浏览Abp

时间:2017-09-15 16:05:14

标签: c# winforms aspnetboilerplate

我尝试用abp页面打开一个新的winForm。我的用户已经通过ABP LogInManger登录应用程序并存储了我的登录结果。

因此,当我使用webBrowser组件打开新表单时,我尝试传递的登录名不起作用。

要登录我尝试:

  • OAuthBearerAuthenticationOptions OAuthBearerOptions {get;组;但它仍然为null的对象。我需要初始化一些Owin或者不是正确的方法吗?
  • 我尝试使用用户和密码重新进行身份验证,并将标头置于Bearer但不能正常工作

有什么想法解决这个问题?

我写了一个简单的案例和有关我的解决方案的更多细节:   - WinForm .Net 4.6.1   - 基于AbpBolierplate的Web应用程序4.6.1

我们将从旧的.Net解决方案创建移植并添加一些新功能。关于新功能,UI在Abp Web上,而不在WinForm上,因此为了允许用户使用这个新功能,我们打开webBrowser嵌入(或不嵌入),我们尝试通过令牌进行身份验证。 就在今天,我们与其他同事交谈,解决方案可以这样做:

  • 在Web上创建自定义控制器以允许在其上添加帖子标记
  • 在控制器内验证用户并重定向到请求的页面

1 个答案:

答案 0 :(得分:0)

这个问题没有简短而正确的答案。我将尝试为您提供解决方案的大纲;

你没有提到你是使用MVC还是Angular!但如果你使用角度更容易。只需在WinForm中创建一个RestApi客户端。使用Http Post对网站进行身份验证,以“api / TokenAuth / Authenticate”。存储令牌并在其到期之前刷新它。

将Application Services用作WebApi端点。为每个请求添加身份验证标头(例如:bearer xxxxxxx_token_xxxxx)。

如果您正在使用MVC,那么您可以创建自己的WebApi来进行身份验证并使用所需的服务。

长话短说;使用WebBrowser来验证和使用aspnetboiler网站并不是一种方便的方法,因为你必须处理cookie。最佳实践是将WebApi用于您的用例。