Authentification WCF et Silverlight
Bonjour à tous,
J'ai un petit soucis depuis hier sur l'authentification WCF.
Bien que les ClientCredentials sont supportés par Silverlight 3, j'aimerai utilisé l'authentification ASP.NET dans mon service WCF.
Pour cela:
-Je crée un contrat de service:
Code:
1 2 3 4 5 6 7 8 9 10
|
[ServiceContract(Namespace = "")]
public interface IAuthenticationService
{
[OperationContract()]
bool Authentication(string login, string pass);
[OperationContract]
bool Authenticated();
} |
-Je crée l'implémentation (juste pour tester):
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
public class AuthenticationService : IAuthenticationService
{
#region IAuthenticationService Members
public bool Authentication(string login, string pass)
{
FormsAuthentication.SetAuthCookie(login, false);
GenericIdentity user = new GenericIdentity(login);
GenericPrincipal securityPrincipal = new System.Security.Principal.GenericPrincipal(user, null);
HttpContext.Current.User = securityPrincipal;
Thread.CurrentPrincipal = securityPrincipal;
return true;
}
[PrincipalPermission(SecurityAction.Demand, Authenticated = true)]
public bool Authenticated()
{
return true;
}
#endregion
} |
Vous remarquerez que j'y vais comme un barbare au niveau de l'authentification, j'ai voulu tout tester...
-Je configure mon Web.config avec des choses de ce style:
Code:
1 2 3
|
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
<authentication mode="Forms"/> |
Lorsque je lance mon client Silverlight, il appelle bien ma méthode d'authentification (qui se passe bien).
Mais dès que j'appelle une autre méthode de mon service, je ne suis de suite plus identifié.
Peut être un problème de cookie ? please help me :)
EDIT: Avec un client de type WPF ou Winform le code fonctionne