Question

J'ai ce code:

using ( var site = new SPSite( myUrl ) ) {
    using ( var web = site.AllWebs[0] ) {
        // read-only operations
    }
}

Le " myUrl " est l'URL du domaine supérieur avec WSS 3.0. L'authentification est définie sur Windows. Si je lance ce code depuis la ligne de commande sous & Quot; external_app_user & Quot; compte, tout va bien. Mais si je lance ce code à partir de webservice (en dehors de l'application Web WSS), alors le résultat sera la réponse http & "; 401 NON AUTORISÉ &"; au lieu de réponse SOAP. C'est étrange, car ce code est dans & "; Try-catch &"; bloqué, et si une excuse est déclenchée, je renvoie un message d'erreur dans la réponse SOAP.

Le code est exécuté sur le même ordinateur que WSS.

Si j'exécute le service Web à partir de webbroser sur la machine sur laquelle le service Web est en cours d'exécution, le formulaire de connexion Windows classique s'affiche. Si j'exécute le service Web à partir d'un navigateur Web sur un autre ordinateur, seul le & 401 "NON AUTORISÉ &"; réponse http.

Le service Web est exécuté sous le compte correct. Ce compte a accès au WSS (testé via le site Web de SharePoint). Si j'essaie d'obtenir & "System.Security.Principal.WindowsIdentity.GetCurrent (). Name &"; le nom d'utilisateur correct est renvoyé.

Dans web.config, la valeur est définie sur & "; < identité impersonate = &" true & "; userName = " _my_username _ " password = " _my_password _ " / >.

Quelqu'un a une idée de ce qui ne va pas?

Était-ce utile?

Autres conseils

La raison pour laquelle vous ne pouvez pas attraper la 401 est parce que SharePoint a une gestion personnalisée pour cette exception, consultez ce fil de discussion: Impossible d’attraper l’erreur d'accès refusé de SharePoint (avec une suggestion sur la façon de la désactiver).

Vous pouvez vérifier dans IIS si les authentifications anonyme et Windows sont autorisées. Ensuite, il se peut qu’il vous permette de passer de manière anonyme, au lieu de lire votre identité Windows, ce qui conduit à un message non autorisé plus tard.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top