2010-12-03 30 views
2

Je rencontre des problèmes pour configurer l'authentification de base pour le service Web. J'écris service Web standard (non WCF) en utilisant .NET 4.0Authentification de base pour le service Web

Dans le web.config j'ai les paramètres suivants:

<configuration> 
    <system.web> 
     <identity impresionate="true" /> 
     <authentication mode="Windows" /> 
    </system.web> 
... 
</configuration> 

Le service Web a une méthode:

[WebMethod(Description = "Returns currently logged in user.")] 
public string WhoAmI() 
{ 
    return "You are logged in as: " + System.Threading.Thread.CurrentPrincipal.Identity.Name; 
} 

Le serveur de test est une machine virtuelle située sur le même domaine que ma machine. Quand j'y accède, je n'ai rien pour le CurrentPrincipal.Identity.Name.

J'ai également essayé d'accéder au service Web en utilisant le soapUI. J'ai entré mon nom d'utilisateur, mot de passe et domaine, mais je ne peux toujours pas le faire fonctionner.

Toute aide serait appréciée.

Répondre

1

Sur IIS (inetmgr) vous pouvez trouver la fenêtre Authendication Méthode. (WebService1-> Propriétés-> Répertoire Sécurité-> Authendication Contrôles-> Bouton Edit)

Vous pouvez choisir l'accès Authendicated. (Diggest, Basic, Integrated Authendication) Après cela, la modification de votre méthode fonctionnera comme vous le souhaitez.

+0

Pour une raison étrange, je n'ai pas pu définir l'authentification de base en éditant le fichier web.config. Je pourrais le faire seulement d'IIS. –

0

Est-ce que cela fonctionne si vous modifiez impresionate à impersonate?