J'essaie d'ajouter au système d'authentification fourni dans le modèle de gestion Silverlight 4 car mon modèle ne correspond pas complètement à celui fourni dans le modèle. J'ai un service Web existant qui effectue mon authentification et fournit des rôles ainsi que des opérations autorisées pour chaque rôle. C'est le modèle fourni par AzMan/Authentication Manager. Cependant, plutôt que d'avoir un seul rôle, après l'authentification, je fournis à l'utilisateur une liste des rôles disponibles et permet à l'utilisateur de sélectionner l'un de ces rôles, puis d'obtenir une liste des opérations/actions pour ce rôle sélectionné. Le problème que j'ai, c'est que je ne peux pas travailler sur la façon d'ajouter de nouvelles méthodes au service d'authentification pour me permettre d'obtenir les opérations pour l'utilisateur actuel, et le rôle actuellement sélectionné pour terminer le processus de connexion, par exemple.Silveright - extension de AuthenticationService pour fournir une authentification personnalisée
public SessionInfo GetOperations(string username, string selectedRole)
{
SessionInfo sessionInfo;
using (AzManServiceClient azClient = new AzManServiceClient("AnonymousAuthentication"))
{
sessionInfo = azClient.LoginUserByUsername("msldap://CN=LiveApps,CN=Program Data,DC=HLSUK,DC=local", "AIRS", selectedRole, null, username);
}
return sessionInfo;
}
La méthode ci-dessus n'est pas accessible depuis les LoginForm.xaml.cs en utilisant WebContextBase.Current.Authentication ... Seules des méthodes telles que connexion sont visibles qui est encore plus déconcertant parce que je ne vois pas ces méthodes authenticationbase. Je suis complètement confus. Comment puis-je ajouter de nouvelles méthodes au service d'authentification ou dois-je créer un nouveau service de domaine ou dois-je accéder au service Azman pour obtenir les opérations directement à partir du client Silverlight?
Oui J'étend la base d'authentification et la méthode GetOperations fait partie de la classe étendue - pourquoi ne puis-je pas la voir? – Calanus
Avez-vous défini WebContext.Current.Authentication sur votre service d'authentification? Si vous utilisez UnityContainer. Container.RegisterInstance (de AuthenticationService) (WebContext.Current.Authentication) – Einarsson
Et nous accéder à la méthode de connexion par nouvelle AuthenticationService() Login() de sorte que vous devriez être en mesure d'accéder à vos méthodes façon. Pas via WebContext.Current. – Einarsson