我有一项服务需要将 URL 添加到登录用户的 IE 缓存中
为此,我首先使用OpenProcessToken获取用户的令牌并调用ImpersonateLoggedOnUser
我尝试使用 2 种方法添加 URL
- 使用IUrlHistoryStg2 COM 接口,并调用AddUrlAndNotify方法
- 按以下方式
使用CommitUrlCacheEntryW
CommitUrlCacheEntryW(urlToEnterWithPrefix, 0, ExpireTime, LastModifiedTime, URLHISTORY_CACHE_ENTRY | NORMAL_CACHE_ENTRY, NULL, 0, NULL, NULL);
当进程在登录用户下运行时,这两种方法都可以正常工作,但在 LocalSystem 下运行时会失败
CommitUrlCacheEntryW文档统计:
WinINet 不支持服务器实现。此外,不应从服务中使用它。对于服务器实现或服务,请使用 Microsoft Windows HTTP 服务 (WinHTTP)。
但我在WinHTTP中找不到任何与CommitUrlCacheEntryW对应的方法
我需要有关以下问题的帮助:
- 我可以使用服务中的IUrlHistoryStg2来访问登录用户的 url-history 吗?
- 如何使用CommitUrlCacheEntryW或服务中的更简洁的函数来访问登录用户的 url-history?
- 有没有我仍然没有使用的第三种选择?