2009-04-11 11 views
5

Bei der Implementierung für meinen Dienst Ich habe:Konfigurieren von WCF Formularauthentifizierung

[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]

In meiner CONFIG-Datei Ich habe:

<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />

und:

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

und:

<authentication mode="Forms" />

In der "Login" Methode für meinen Dienst, ich habe:

FormsAuthentication.SetAuthCookie(request.UserName, false);

Allerdings, wenn ich überprüfen:

HttpContext.Current.User.Identity.Name

Es ist eine leere Zeichenfolge. Was vermisse ich?

Antwort

1

Die Formularauthentifizierung wird verwendet, wenn der Benutzer ein Anmeldeformular ausfüllen soll.

Für einen Dienst wäre es besser, einen anderen Authentifizierungsmechanismus zu verwenden.

0

Ich nehme an, Sie überprüfen den Identity.Name bei einer nachfolgenden Anfrage?

Haben Sie ein Element in Ihrer web.config?

Stellen Sie außerdem sicher, dass der Cookie aus der Anmeldeantwort erfasst und bei den nachfolgenden Anfragen erneut gesendet wird?

1

Verwenden Sie stattdessen ServiceContext.User.Identity.

Verwandte Themen