1

Nous travaillons sur une application interne MVC3 qui utilise uniquement l'authentification Windows. Il y a une vue qui fait un appel AJAX à une action du contrôleur qui effectue un traitement avant d'appeler un service Web. Le problème que nous rencontrons est que si l'accès anonyme est désactivé (comme dans l'authentification Windows est activée), l'appel du service à partir des actions du contrôleur entraîne une erreur 401: non autorisée.AJAX Appel au contrôleur MVC qui appelle un WebService

Nous avons rencontré un problème de double saut où les informations d'identification ne sont pas transmises correctement du serveur au serveur lors de l'appel d'un service au sein d'un service. Je me demande si l'appel AJAX est en quelque sorte imitant le même comportement et ne transmettant pas les informations d'identification Windows correctes au contrôleur qui ne transmettra pas les informations d'identification correctes au service Web.

J'ai vu quelques messages qui montrent comment passer un nom d'utilisateur et un mot de passe avec l'appel jQuery mais rien ne mentionne, de façon efficace, d'apporter l'authentification Windows avec elle.

Est-ce que quelqu'un a rencontré un problème similaire? Nous préférons ne pas laisser l'accès anonyme sur le service Web car il s'agit de données sensibles dont nous aimerions contrôler l'accès.

+0

J'aurais dû élaborer un peu. Je parle d'accès anonyme activé ou désactivé sur le répertoire virtuel du service Web. L'authentification Windows pour l'application Web fonctionne correctement dans tous les cas. –

Répondre

0

Avez-vous l'identité usurpation d'identité activée comme décrit dans cette question:

How to get Windows user name when identity impersonate="true" in asp.net?

+0

Sur l'application MVC3, nous avons: dans le fichier web.config. Nous avons effectivement pensé à cela lorsque nous avons initialement déployé l'application, mais rien n'a changé. Est-ce que cela devrait également être le cas pour le service Web? Ou serait-ce important? –

+0

Je suppose que vous auriez juste besoin d'authentification = windows dans le service, mais je n'ai jamais fait cela, donc je ne suis pas sûr. – BNL

+0

Les utilisateurs peuvent-ils contacter le service directement? – BNL

0

Un collègue a fait quelques recherches sur le week-end et déterminé, il peut avoir quelque chose à voir avec Kerberos configuration d'authentification sur le serveur comme ainsi que l'appel jQuery. Afin de contourner cela, nous avons simplement refacturé le service Web dans une bibliothèque que l'application vient de faire référence. Nous en avons fait un service Web au départ, car nous pensions qu'à l'avenir, ces données devraient être accessibles à partir d'autres applications. En cours d'exécution dans ce problème, nous allons probablement le transformer en un paquet NuGet.

Merci pour les commentaires.

Questions connexes