J'essaie d'authentifier les appels à un service WCS DataServices via Silverlight. Essentiellement, lorsqu'un utilisateur se connecte ils obtiennent une table de hachage qui devrait être intégré dans les en-têtes de chaque demande aux WCF DataServices. Actuellement utiliser cela comme une vérification par une méthode de QueryInterceptor par exempleAuthentification des services de données WCF
[QueryInterceptor("Orders")]
public Expression<Func<Orders,bool>> OnQueryOrders()
{
string hash = WebOperationContext.Current.IncomingRequest.Headers.Get("MyHeader");
if(!TestHash(hash))
{
return o => false;
}
else
{
return o => true;
}
}
Cela semble être le moyen le moins efficace pour y parvenir. Existe-t-il un hook dans les services de données WCF avant l'exécution d'une requête que vous pouvez utiliser pour annuler une demande? Gardez à l'esprit que ce service est sans état et n'a pas accès à la session.
YOu devrait retourner un 403 (interdit) au lieu d'un 404 (non trouvé) –
Awesome! Pourquoi ne pouvons-nous pas le faire pour l'authentification au lieu de l'authentification de base de base stupide. C'est beaucoup plus sûr, n'est-ce pas? Je peux crypter un message ou un jeton et le faire valider sur le serveur. – gideon