2017-09-15 205 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