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:
-Je crée l'implémentation (juste pour tester):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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(); }
Vous remarquerez que j'y vais comme un barbare au niveau de l'authentification, j'ai voulu tout tester...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 }
-Je configure mon Web.config avec des choses de ce style:
Lorsque je lance mon client Silverlight, il appelle bien ma méthode d'authentification (qui se passe bien).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <serviceHostingEnvironment aspNetCompatibilityEnabled="true"/> <authentication mode="Forms"/>
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
Partager