将 Windows 身份验证标头添加到 HTTP 请求以进行 WebDAV 身份验证

问题描述 投票:0回答:0

在我的 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 文档时不再出现登录对话框?

authentication ms-word http-headers windows-authentication webdav
© www.soinside.com 2019 - 2024. All rights reserved.