0

asp.net を使用して SharePoint Foundation 2010 から Web サービスを利用しようとしています。

401 無許可エラーが発生します。

これは、資格情報が欠落しているか無効であることを意味しますが、その理由がわかりません。

認証なしで標準ブラウザからWebサービスページにアクセスできます。これは、ユーザー/パスワードのチャレンジではありません。これは、サーバー自体とリモート クライアント ブラウザーの両方から機能します。

コードは次のとおりです。

    Dim wsLists As New JEMS30LISTS.Lists
    Dim dtTasks As New DataTable
    Dim xmlDoc As New System.Xml.XmlDocument
    Dim ndQuery, ndViewFields, ndQueryOptions, ndListItems As System.Xml.XmlNode
    Dim szListName, szListsUrl, szUsername, szPassword, szDomain As String
    szListsUrl = "https://demo.********.com/_vti_bin/Lists.asmx"
    szUsername = "*********"
    szPassword = "************"
    szDomain = "***********"


    ndQuery = xmlDoc.CreateNode(System.Xml.XmlNodeType.Element, "Query", "")
    ndViewFields = xmlDoc.CreateNode(System.Xml.XmlNodeType.Element, "ViewFields", "")
    ndQueryOptions = xmlDoc.CreateNode(System.Xml.XmlNodeType.Element, "QueryOptions", "")
    ndQueryOptions.InnerXml = "<IncludeMandatoryColumns>FALSE</IncludeMandatoryColumns>" _
                            + "<DateInUtc>TRUE</DateInUtc>"
    If bAllFields = True Then
        ndViewFields.InnerXml = ""
    Else
        ndViewFields.InnerXml = "<FieldRef Name=""TEAS_x0020_5_x0020_Task_x0020_Nu"" /> <FieldRef Name=""TEAS_x0020_5_x0020_SubTask"" /> <FieldRef Name=""TEAS_x0020_6_x0020_Task_x0020_Nu"" /> <FieldRef Name=""TEAS_x0020_6_x0020_Task_x0020_Nu0"" /> <FieldRef Name=""Shreds_x0020_Converted"" /> <FieldRef Name=""TEAS_x0020_6_x0020_Shred_x0020_P"" /> <FieldRef Name=""ProcessTask"" /> <FieldRef Name=""TEAS6Dept"" /> "
    End If

    ndQuery.InnerXml = "<OrderBy><FieldRef Name=""TEAS_x0020_5_x0020_Task_x0020_Nu"" Ascending=""True""></FieldRef></OrderBy>"
    szListName = "CORs"

    Try
        Dim cache As New System.Net.CredentialCache
        wsLists.Url = szListsUrl
        Dim vUri As New Uri(wsLists.Url)
        Dim vNW As New Net.NetworkCredential()
        cache.Add(vUri, "windows", vNW)
        wsLists.Credentials = cache
        ndListItems = wsLists.GetListItems(szListName, Nothing, ndQuery, ndViewFields, 99999, ndQueryOptions, Nothing)
    Catch ex As Exception
        Response.Write("GetListItems: " + ex.Message + "<br>")
    End Try

いくつかのユーザー名とパスワードの組み合わせを試しましたが、認証はまったく行われませんでした (ブラウザーからチャレンジされないため)。

何が欠けているのか誰か教えてもらえますか?

ありがとう

4

1 に答える 1

0

基本認証が無効になっていることが判明しました。Windows認証(ISが有効になっている)を試してもうまくいかなかったので、なぜそれが問題になるのかわかりません。

基本認証をオンにすると、現在機能しています。

于 2013-03-27T15:14:58.603 に答える