J'ai un site Web .NET 2.0 (VB) sous IIS6 (XP Pro SP2) et un .NET 3.5 (configuré en tant que .NET2 sous l'onglet ASP.NET de IIS, bien sûr) hébergeant un service Web ASMX.
Dans Chrome, je peux appeler ASMX et invoquer les méthodes Web avec succès. Cependant, en appelant les méthodes Web en code, à partir du site Web .NET 2.0, je reçois:
La requête a échoué avec le statut HTTP 401: non autorisé.
Comment puis-je contourner cela?
Réponses:
19 pour la réponse № 1Vous devez définir les informations d'identification dans votre application lorsque vous initialisez le webService
objet.
Quelque chose comme webService.UseDefaultCredentials = true
Cela définira les informations d'identification de la demande auprès de l'utilisateur en cours d'exécution de l'application.
3 pour la réponse № 2
webService.UseDefaultCredentials = true
Cela a fonctionné pour moi.
2 pour la réponse № 3
Dans IIS 7, activez l'authentification anonyme et vous devriez pouvoir déboguer.
2 pour la réponse № 4
vous pouvez utiliser ceci:
webservice.UseDefaultCredentials = true;
si ne fonctionne pas, utilisez le code ci-dessous au lieu du code ci-dessus
webservice.Credentials = new NetworkCredential("userName", "password", "domain");
webservice.PreAuthenticate = true;
remarque: le nom d'utilisateur Mot de passe et domaine sont les informations d'identification de l'utilisateur ayant accès au service Web.
alors assurez-vous que l'utilisateur est autorisé à accéder au service Web
peut-être que l'utilisateur est l'utilisateur Windows
et vous pouvez obtenir le domaine de: clic droit dans "MyComputer" et propriétés le domaine est le nom de l'ordinateur ou le groupe de travail
0 pour la réponse № 5
Je suis tester de cette façon:
CheckListService.CheckList chkSrvice = new CheckListService.CheckList() {
UseDefaultCredentials = true };