2009-04-11 16 views
5

Nell'implementazione per il mio servizio ho:Configurazione WCF forme di autenticazione

[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]

Nel mio file config ho:

<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />

e:

 
    <system.web.extensions> 
    <scripting> 
     <webServices> 
     <authenticationService enabled="true" requireSSL = "false"/> 
     </webServices> 
    </scripting> 
    </system.web.extensions> 

e:

<authentication mode="Forms" />

Nel metodo "Login" per il mio servizio, ho:

FormsAuthentication.SetAuthCookie(request.UserName, false);

Tuttavia, quando ho controllare:

HttpContext.Current.User.Identity.Name

Si tratta di una stringa vuota. Cosa mi manca?

risposta

1

L'autenticazione basata su form viene utilizzata quando si desidera che l'utente compili un modulo di accesso.

Per un servizio sarebbe meglio utilizzare un diverso meccanismo di autenticazione.

0

Suppongo che tu stia verificando Identity.Name su una richiesta successiva?

Hai un elemento nel tuo web.config?

Inoltre, si sta verificando di acquisire il cookie dalla risposta di accesso e di inviarlo nuovamente alle richieste successive?

1

Provare a utilizzare invece ServiceContext.User.Identity.

Problemi correlati