gpt4 book ai didi

c# - 是否可以在不关闭浏览器的情况下删除或使 gecko/firefox session 无效?

转载 作者:行者123 更新时间:2023-11-30 21:22:27 26 4
gpt4 key购买 nike

是否可以使用 gecko/firefox XPCOM 界面,在不关闭浏览器的情况下删除或使用户的事件 session 无效?我在应用程序中使用嵌入式 Gecko(特别是 GeckoFX ),多个用户可能会在应用程序的整个生命周期中使用浏览器组件。

该应用程序将网络浏览与各种其他功能打包在一起,当网络浏览器“关闭”时,该应用程序仍保持打开状态。似乎就壁虎引擎而言,由于进程尚未关闭,事件 session 仍处于事件状态。例如,如果用户要登录 Gmail 或 Facebook,然后关闭浏览器,在重新打开浏览器并导航回这些页面之一时,该用户将确定仍处于登录状态。因为多个用户可以使用该应用程序如果应用程序没有实际退出,这会引发隐私问题。

我试过调用NS_InitXPCOM2NS_ShutdownXPCOM在浏览器控件的构造函数/处理方法中,但是在进程的生命周期内无法在 NS_ShutdownXPCOM 之后调用 NS_InitXPCOM2,因此这只会崩溃。

我也用过nsISHistory的PurgeHistory方法和 nsICacheService 的 evictEntries 方法- 这些似乎都不会在流程的生命周期内立即产生影响。

有谁知道可以实现此目的的任何 XPCOM 接口(interface)?或者,任何指向类似功能的指针,无论是通过 XPCOM 接口(interface)还是 Firefox 扩展,都将不胜感激(是否有任何扩展允许您在不重新打开浏览器的情况下清除当前浏览 session ?或者为您提供每个之间的不同 session Firefox 窗口/选项卡?)

该程序是用 C# 编写的,但欢迎提供任何语言的答案。

非常感谢

最佳答案

我终于找到了似乎允许这样做的界面:nsICookieManager removeAll()

使用 GeckoFX 的相关 C# 接口(interface)/代码:

[Guid("AAAB6710-0F2C-11d5-A53B-0010A401EB10"),
ComImport,
InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
interface nsICookieManager
{
void removeAll();
void remove(string aDomain, string aName, string aPath, bool aBlocked);
}

Xpcom.GetService<nsICookieManager>("@mozilla.org/cookiemanager;1").removeAll();在适当的位置。

关于c# - 是否可以在不关闭浏览器的情况下删除或使 gecko/firefox session 无效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2308170/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com