2008-11-25 9 views
6

J'ai écrit il y a quelques mois un service Windows qui envoyait une requête ping à une liste Sharepoint à l'aide de la fonction _vti_bin/lists.asmx GetListItemChanges. Cela fonctionnait bien jusqu'à il y a quelques semaines lorsque mon entreprise a mis à niveau notre instance Sharepoint vers SP1.
Maintenant, quand mon service tente d'accéder à Sharepoint je reçois une erreur d'authentification 401,1:Erreur d'authentification lors de l'accès à la liste Sharepoint via le service Web

Erreur:

You are not authorized to view this page
You do not have permission to view this directory or page using the credentials that you supplied.
Please try the following: Contact the Web site administrator if you believe you should be able to view this directory or page.
HTTP Error 401.1 - Unauthorized: Access is denied due to invalid credentials.
Internet Information Services (IIS)

J'ai vérifié et mes privilèges sur le site ont pas changé. voici le code que j'appelle la liste:

Lists listsService = new Lists(); 
listsService.Credentials = new NetworkCredential("UserName", "Password", "domain"); 
Result = listsService.GetListItemChanges("List name", null, dTime.ToString(), null); 

Il a également été porté à mon attention que l'authentification de base peut avoir été désactivée sur notre ferme. Je ne crois pas que j'utilise cela, mais je me trompe peut-être.

Répondre

0

Avez-vous des proxies sur votre réseau interne? Je pense à la manière du double-hop, et que Basic Auth n'est pas sujet à cela mais NTLM l'est. Si vous avez un proxy, le double saut est un problème. Si vous accédez directement à la machine et ne pouvez compter qu'un saut (service vers le service Web), cela ne devrait pas poser de problème.

0

En supposant que son non SSL ou des problèmes d'authentification de base/Windows alors je fais le pari de cette

Pour tester vous connecter au serveur local et essayer de parcourir votre site. Si vous ne pouvez pas naviguer avec succès en utilisant le nom d'utilisateur/pwd donné ci-dessus, mais vous pouvez à partir d'un PC à distance, alors c'est l'article pour vous.

You receive error 401.1 when you browse a Web site that uses Integrated Authentication and is hosted on IIS 5.1 or IIS 6

http://support.microsoft.com/default.aspx?scid=kb;en-us;896861

1

Sur la base des informations fournies, je doute que ce soit une erreur de programmation. Pouvez-vous accéder à l'interface du gestionnaire IIS sur le serveur hébergeant le site SharePoint? Si c'est le cas, vérifiez les technologies d'authentification valides permises. Les connexions anonymes sont-elles autorisées? L'authentification intégrée de Windows est-elle activée? HTTP Basic auth? Demandez à votre infrastructure/personnes SharePoint sur la possibilité d'un double-hop (proxy). Si c'est le cas, cela pourrait aussi fonctionner, mais c'est difficile à configurer (délégation Kerberos). La classe NetworkCredentials semble soutenir tous les schémas d'authentification standard pris en charge par IIS (sauf pour les formes):

http://msdn.microsoft.com/en-us/library/system.net.networkcredential(VS.80).aspx

Vous pourriez avoir besoin d'avoir les gens d'infrastructure mis en SPN pour la fin de l'avant Web SharePoint:

http://support.microsoft.com/kb/929650

Je déconseille toutefois de modifier quoi que ce soit via IIS Manager. Demandez à votre administrateur SharePoint de modifier les technologies d'authentification autorisées pour le site via l'administration centrale de SharePoint.

Cordialement, Sam

1

Je viens de trouver un problème très similaire et l'a résolu grâce à un article MS KB: http://support.microsoft.com/kb/896861

Le bit que vous devriez essayer est ceci:

Method 2: Disable the loopback check Follow these steps:

  1. Click Start, click Run, type regedit, and then click OK.
  2. In Registry Editor, locate and then click the following registry key: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
  3. Right-click Lsa, point to New, and then click DWORD Value.
  4. Type DisableLoopbackCheck, and then press ENTER.
  5. Right-click DisableLoopbackCheck, and then click Modify.
  6. In the Value data box, type 1, and then click OK.
  7. Quit Registry Editor, and then restart your computer.

Cela a résolu le même problème dans un environnement dans lequel toutes les solutions normales (accréditations addign à l'appel de service Web) ont échoué.

Questions connexes