同一站点上多用户登录的 C# 应用程序

Posted

技术标签:

【中文标题】同一站点上多用户登录的 C# 应用程序【英文标题】:C# application for Multiple user Login on same Site 【发布时间】:2011-07-15 09:12:32 【问题描述】:

是否有可能制作一个应用程序,允许我们制作一个具有 4 个 Web 浏览器控件的应用程序,并且我们可以独立使用每个浏览器控件在同一网站上进行不同的登录。

假设我有一个使用 Office 电子邮件处理 hotmail 的 Web 浏览器 第二个 Web 浏览器控件在哪里处理带有个人电子邮件的 hotmail

目前我已经搜索到网络浏览器不能有不同的代理或用户代理字符串。

有什么解决办法吗?

【问题讨论】:

如果您没有登录网站,但您正在登录其他服务(邮件),请确定是... 您的网站可以充当登录代理。为什么需要不同的 User-Agent 标头或代理? 是的,我希望它为服务实现它怎么做。我想到了用户代理或代理来使它们与众不同,以便邮件网站无法识别我已经从其他用户登录 身份验证与身份验证票证相关联。了解票证是如何发送到服务的(cookie、url、表单)并将其应用于您的控件。 你能给我一些线索吗 Url 和表单身份验证应该立即工作,无需任何更改。也许设置您不接受 cookie 将强制使用此模式(如果服务支持自动身份验证模式切换)。否则尝试webBrowser.Document.Cookie 更改身份验证cookie(此处可能需要强制转换)。您也可以尝试使用CookieContainer 手动执行 Web 请求。有很多方法可以做到这一点,您可能应该阅读一些关于身份验证的页面。 【参考方案1】:

移动我的 cmets 作为答案。

身份验证与身份验证票相关联。了解票证是如何发送到服务的(cookie、url、表单)并将其应用于您的控件。

URL 和表单身份验证无需任何更改即可立即运行 - 我看到这些在 php 应用程序中被大量使用。 也许设置您不接受 cookie 将强制使用此模式 - 如果服务支持自动身份验证模式切换(例如带有 cookieless="AutoDetect" 的 WebForms)。

否则请尝试 webBrowser.Document.Cookie 更改身份验证 cookie - WinForms 开箱即用。

您需要转换文档并在 WPF 中添加对 COM “Microsoft html 对象库” 的引用:

string cookie = (webBrowser.Document as mshtml.IHTMLDocument2).cookie;

您也可以尝试使用 CookieContainer 手动执行 Web 请求,并将 WebBrowser 控件仅用于可视化。您可能应该阅读一些关于身份验证的页面。

基本上你需要向不同的服务发送不同的cookies。

【讨论】:

以上是关于同一站点上多用户登录的 C# 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

C# ASP.NET;获取登录用户的 NetworkCredential 对象?

单点登录该如何实现?

单点登录该如何实现

C# winform 如何取得网站cookie,从而实现自动登录。

SSO单点登录思路

C# 使用登录的用户凭据启动进程