在我的 Web 项目中,我使用 Microsoft Internet Information Server 7.5 的 WebDAV 组件通过 Microsoft Word 进行文档处理。
当前和过去的主要问题之一是设计身份验证时,Word 中不会出现输入用户和密码的对话框。
我目前正在通过在单独的 IHttpModule 中向服务器端的每个 WebDAV 请求添加用于基本身份验证的标头来解决身份验证问题。
我自己的模块集成在web.config中如下:
<system.webServer>
<modules runAllManagedModulesForAllRequests="true" runManagedModulesForWebDavRequests="true">
<add name="WebDAVHttpModule" type="WebDAVHttpModule.WebDAVHttpModule" />
</modules>
</system.webServer>
服务端认证代码示例如下:
Private Sub Application_BeginRequest(ByVal source As Object, ByVal e As EventArgs)
Dim oHttpApplication As HttpApplication = DirectCast(source, HttpApplication)
gsWebDAV_User = Registry.LocalMachine.OpenSubKey("XXX\Options").GetValue("WebDAV_User")
gsWebDAV_PWD = Registry.LocalMachine.OpenSubKey("XXX\Options").GetValue("WebDAV_PWD")
gsLogin = System.Convert.ToBase64String(ASCIIEncoding.ASCII.GetBytes(gsWebDAV_User & ":"
& CipherTools.gsDecipher(gsWebDAV_PWD, "RijndaelManaged")))
oHttpApplication.Context.Request.Headers.Add("Authorization", "Basic " + gsLogin)
End Sub
但是,Microsoft Office 365 很快将不再支持基本身份验证。
有没有办法将 Windows 身份验证标头附加到每个 WebDAV 请求,以便通过浏览器打开 Word 文档时不再出现登录对话框?