2010-10-13 2 views
0

Je rencontre des difficultés avec l'authentification Windows dans une application WCF REST. En utilisant VS2010, j'ai choisi New Project> Application de service WCF REST.Nom d'utilisateur Windows dans WCF 4 Reste

J'ai modifié le fichier web.config pour assurer l'authentification Windows et refuser les utilisateurs anonymes.

<system.web> 
    <compilation debug="true" targetFramework="4.0" /> 
    <authentication mode="Windows" /> 

    <authorization> 
     <deny users="?"/> 
    </authorization> 

    </system.web> 

I modifié Service1.cs retourner le nom d'utilisateur dans la réponse:

[WebGet(UriTemplate = "", 
    RequestFormat= WebMessageFormat.Json, 
    ResponseFormat = WebMessageFormat.Json, 
    BodyStyle=WebMessageBodyStyle.Bare)] 
public List<SampleItem> GetCollection() 
{ 
    // TODO: Replace the current implementation to return a collection of SampleItem instances 
    WebOperationContext.Current.OutgoingResponse.ContentType = "text/plain"; 
    string fullID = ServiceSecurityContext.Current.WindowsIdentity.Name; 

    return new List<SampleItem>() { new SampleItem() { Id = 1, StringValue = "Hello " + fullID } }; 
} 

je le tester avec succès en cours d'exécution sur la machine locale, puis je publie à IIS7 sur Windows Server 2008. Dans Gestionnaire des services Internet , J'active l'authentification Windows sur l'application et désactiver tous les autres types d'authentification. Je lui donne son propre pool d'applications avec mode de pipeline géré intégré.

Je peux voir avec succès dans l'explorateur Windows en cours d'exécution sur la machine Win2008 (http: // localhost/JobManager/Service1 /)

En utilisant IE 7 d'une autre machine, cependant, il me demande d'insérer le nom d'utilisateur/mot de passe deux fois , Je le remplis deux fois mais reçois une erreur 401 la deuxième fois. (Non autorisé: l'accès est refusé en raison d'informations d'identification non valides.)

Répondre

0

Résolu en changeant l'identité utilisée par le pool d'applications pour celui qui a accès aux services d'annuaire.