2010-10-01 9 views
1

J'ai une application Silverlight utilisant les services RIA. Je souhaite réutiliser le composant de services RIA et l'appeler à partir d'un autre service Web. Le service Web et le composant de services RIA seront sur le même serveur.Authentification RIA à partir d'un projet de services Web

Je suis assez loin, mon projet de service web a une 'référence de service' au projet de services RIA qui est tout bon. Mais quand je l'appelle l'une des méthodes de services RIA je reçois l'exception,

{DDB20766-F78A-42c7-B777-5ECF0AD9E4F3}Access to operation 'GetValidId' was denied. 
at System.ServiceModel.DomainServices.Server.DomainService.ValidateMethodPermissions(DomainOperationEntry domainOperationEntry, Object entity) 

Les services de RIA classe de domaine a l'attribut [RequiresAuthentication]. J'essaie de comprendre comment je peux spécifier ces informations d'identification et m'authentifier?

Tout comme un test j'ai commenté l'attribut [RequiresAuthentication] et tout a fonctionné sans aucun problème.

Répondre

1

Vérifiez ce lien:

http://www.ben-morris.com/using-the-wcf-authentication-service-without-cookies

Fondamentalement, vous devez d'abord vous authentifier avec succès contre votre serveur et que le serveur vous renvoyer un cookie d'authentification que vous pouvez programatically ajouter aux demandes ultérieures Méthodes WCF RIA avec [RequiresAuthentication] activé. Remarque: pour que cela fonctionne, dans votre programme client, lors de la configuration des liaisons WCF pour appeler les méthodes WCF RIA de votre serveur, assurez-vous que allowCookies = "false"; Cela permettra au code du lien ci-dessus d'être en mesure de définir manuellement les cookies dans l'en-tête.