当一个https的请求到达IIS服务器时,https请求为加密状态,需要拿到相应的服务器证书解密请求。由于每个站点对应的证书不同,服务器需要通过请求中不同的主机头来判断需要用哪个证书解密,然而主机头作为请求的一部分也被加密。最终IIS只好使用第一个绑定到该IP:PORT的站点证书解密请求,从而有可能造成对于其他站点的请求失败而报错。
Win2012下部署多个HTTPS网站
解决CEFSharp关闭时主程序退出的问题
昨天在写代码时,碰到了一个问题。
Form里面有一个TabControl,里面有多个TabPage,每个TabPage里面都放了一个CefSharp.WinForms.ChromiumWebBrowser用来展示网页。但是无论关闭任何一个Tabpage,主程序都会退出,并且在输出页面报 “程序[2508] XXX.vshost.exe 已退出,返回值为 -1073741819 (0xc0000005) ‘Access violation’。”
CefSharp屏蔽右键菜单
实现接口:
internal class MenuHandler : CefSharp.IContextMenuHandler
{
public bool OnContextMenuCommand(CefSharp.IWebBrowser browserControl, CefSharp.IBrowser browser, CefSharp.IFrame frame, CefSharp.IContextMenuParams parameters, CefSharp.CefMenuCommand commandId, CefSharp.CefEventFlags eventFlags)
{
System.Console.WriteLine(@"OnContextMenuCommand");
return false;
}
public void OnContextMenuDismissed(CefSharp.IWebBrowser browserControl, CefSharp.IBrowser browser, CefSharp.IFrame frame)
{
System.Console.WriteLine(@"OnContextMenuDismissed");
}
public bool RunContextMenu(CefSharp.IWebBrowser browserControl, CefSharp.IBrowser browser, CefSharp.IFrame frame, CefSharp.IContextMenuParams parameters, CefSharp.IMenuModel model, CefSharp.IRunContextMenuCallback callback)
{
System.Console.WriteLine(@"RunContextMenu");
return false;
}
public void OnBeforeContextMenu(CefSharp.IWebBrowser browserControl, CefSharp.IBrowser browser, CefSharp.IFrame frame, CefSharp.IContextMenuParams parameters, CefSharp.IMenuModel model)
{
System.Console.WriteLine(@"OnBeforeContextMenu");
model.Clear();
}
}
调用: