C# 使用web浏览器控件从windows应用填充会话变量

C# 使用web浏览器控件从windows应用填充会话变量,c#,.net,winforms,session-variables,C#,.net,Winforms,Session Variables,我有一个包含web浏览器的windows应用程序,用户使用windows应用程序登录后,他将使用web浏览器控件重定向到网站 我的问题是,我可以将会话变量发送到此网站吗?您不能直接这样做,因为会话变量位于与windows应用程序完全断开连接的应用程序服务器上 您可以调用一个简单的URL来设置变量。例如: http://www.mywebsites/session.aspx?additem=test 然后在session.aspx页面中添加以下代码 HttpContext.Current.Ses

我有一个包含web浏览器的windows应用程序,用户使用windows应用程序登录后,他将使用web浏览器控件重定向到网站


我的问题是,我可以将会话变量发送到此网站吗?

您不能直接这样做,因为会话变量位于与windows应用程序完全断开连接的应用程序服务器上

您可以调用一个简单的URL来设置变量。例如:

http://www.mywebsites/session.aspx?additem=test
然后在session.aspx页面中添加以下代码

HttpContext.Current.Session.Add("mykey", HttpContext.Current.Request.QueryString["additem"]);
您只需确保与用户会话相同的会话cookie可用,否则它将被添加到不同的会话中


然而,这并不是完全安全的,因为您现在打开了会话对象,让外部用户在其中输入他们想要的任何值。

听起来您正在这样做

如果登录由站点本身处理,请设置会话ID(例如在cookie中),在登录时设置会话变量,并在随后通过应用程序的浏览器控件与站点交互时标识您的会话(例如使用cookie)

如果站点本身未处理登录,则考虑在现有登录步骤之后对站点进行级联/二次登录(即类似地设置会话ID,并随后通过应用程序的浏览器控件在与站点的交互中标识它)。


<>或者考虑将你的应用程序和你的站点与真实的SSO集成在一起。环顾Web,您会发现许多资源都可以利用。

如果不使用会话,如何在不使用查询字符串的情况下将数据发送到网站?您可以将值发布到网站。无论哪种方式,您的网站都有一个HTTP端点,您需要通过HTTP发送数据以在那里获取一些数据