首页 文章

在VB.Net中通过SSL调用SharePoint Web服务(401未经授权)

提问于
浏览
0

我正在尝试调用Lists.asmx SharePoint Web服务的AddAttachment,如果我通过HTTP调用Web服务,则下面的代码可以正常工作 .

Dim img(MyFile.PostedFile.ContentLength - 1) As Byte
        MyFile.PostedFile.InputStream.Read(img, 0, img.Length)

        'Dim fStream As FileStream = File.OpenRead(FullFileName)
        Dim fileName As String = MyFile.PostedFile.FileName.Substring(3)

        Dim listService As New wsList.Lists()
        Dim credentials As New System.Net.NetworkCredential(UserName, Password, Domain)

        If Not SiteUrl.EndsWith("/") Then
            SiteUrl += "/"
        End If
        SiteUrl += "_vti_bin/Lists.asmx"
        'SiteUrl = SiteUrl.ToLower.Replace("http:", "https:")

        listService.Url = SiteUrl
        listService.Credentials = credentials

        Dim addAttach As String = listService.AddAttachment(ListName, ItemId, fileName, img)

        ReturnValue = True

但是,如果我取消注释这一行

'SiteUrl = SiteUrl.ToLower.Replace("http:", "https:")

我将收到以下错误: The request failed with HTTP status 401: Unauthorized

现在,如果我将上面的行注释掉,那么也注释掉这一行

listService.Credentials = credentials

我将得到相同的401错误(预期),因此看起来通过HTTP而不是HTTPS正确接受凭据 . 可以帮我解释一下这个问题并对如何解决这个问题有任何想法吗?

提前致谢!

1 回答

  • 0

    今天早上我和我们的一个系统人员一起工作 . 他检查了一些IIS日志,可能会发现尝试通过HTTPS访问Web服务时出错 . 他进入Central Admin并添加了一些Alternate Access Mappings以包含HTTPS URL . 一切顺利!

相关问题