2011-02-10 19 views
5

SharePointリストサービスを呼び出してリスト定義とデータを取得しようとしています。 SharePointサイトは私の会社ですが、私はそれを支配しません。ここで私は、サーバーのセキュリティについて知っているすべてです:.NET呼び出しSharePoint WebサービスでHTTP 401の不正な例外が発生する

ServerがHTTPSである:ログインするときに// Serverは、Windows Active Directoryの資格情報を受け入れる...

私は基本、ダイジェスト、CredentialCache、ちょうどNetworkCredentialの、UnsafeAuthenticatedConnectionSharingを試してみました、UseDefaultCredentials、PreAuthenticate ...正しい設定が何であるかわからない...

エラーはHTTP 401 Unauthorizedです。

   Uri url = new Uri(baseAddress + "/_vti_bin/Lists.asmx", UriKind.Absolute); 
       Lists.Lists client = new Lists.Lists(); 

       // sometimes works 
       CredentialCache cache = new CredentialCache(); 
       cache.Add(url, "NTLM", new NetworkCredential(context.UserName, context.Password, context.Domain)); 
       client.UseDefaultCredentials = false; 
       client.Credentials = CredentialCache.DefaultCredentials; 
       // doesn't work ever 
       //client.Credentials = new NetworkCredential(context.UserName, context.Password, context.Domain); 
       //client.PreAuthenticate = true; 
       client.UnsafeAuthenticatedConnectionSharing = true; 
       client.Url = url.AbsoluteUri; 
       listData = client.GetList(listName).OuterXml; 
+1

ブラウザでサイトにアクセスするとき、通常のログイン方法を説明してください。 – djeeg

+1

私はまったく同じ問題を抱えています。あなたはこれのための解決策を見つけましたか? – alf

答えて

1

このコードは、SharePointと同じサーバー上でローカルに実行されていますか?その場合はおそらくlocal loopback checkです。

もしそうでなければ、あなたのサイトは統合認証を使用していますか?そうであればNTLMかKerberos経由かBasicかFormsか?

も ​​- あなたがまたはWebサービス・テスト・ツールなどSoapUIone of the many alternatives

1

私のWebアプリケーションが混在認証モードである(請求(WSDLを取得するために)ブラウザを使用して、そのWebサービスを使用しようとすると何が起こりますNTLM + FBA)、以下のコードは私のために働く。

HttpWebRequest req = WebRequest.CreateHttp("https://example.com/"); 
req.Headers.Add("X-FORMS_BASED_AUTH_ACCEPTED", "f"); //login with windows account 
req.AuthenticationLevel = System.Net.Security.AuthenticationLevel.MutualAuthRequired; 
req.Credentials = new NetworkCredential(“username", “password", "domain”); 
//this also works 
//req.Credentials = CredentialCache.DefaultNetworkCredentials; 
関連する問題