我编写了一个将用户的 SkyDrive 映射到网络驱动器的应用程序。但是,当直接从网络驱动器打开 word 文档时,Microsoft Office 2010 会尝试使用 WebDav 加载文档并提示用户再次登录。
当您登录时,它工作正常,如果您单击“记住我”,它会将凭据存储在凭据存储中,可通过rundll32.exe keymgr.dll, KRShowKeyMgr
此访问仅持续到会话关闭。
我想将用户凭据的自动存储合并到我的程序中,这样用户根本不会收到提示。
我曾尝试使用 CredWrite API,但它只允许我存储通用凭据。我需要存储一个(.Net Passport)凭证。 http://msdn.microsoft.com/en-us/library/windows/desktop/aa375187(v=vs.85).aspx
我只能使用将标志设置为 CREDUI_FLAGS_SERVER_CREDENTIAL http://msdn.microsoft.com/en-us/library/windows/desktop/aa375177(v=vs.85).aspx的 CredUIPromptForCredentials API 来实现这一点
我已经检查了这个词对 credui.dll 的 API 调用,它与我正在调用的 API 调用相同(除了一些标题)。
但它会产生不同的结果。我的代码生成此凭据以保存
api 调用/后续代码一词会产生此凭证
但是我无法弄清楚如何正确保存凭据目标,以便办公室在不提示的情况下加载它。如果没有选项,我什至更喜欢提示加载,因为我可以预先填写用户名和密码,以便用户只需单击“确定”,但我想默默地做。
此外,如果无论如何要禁用 word 的 WebDav 支持/强制它使用网络驱动器作为也可以工作的实际网络驱动器。我一直找不到任何答案。如果有人有任何想法,我将不胜感激。