J'utilise WCF avec mon application ASP.NET MVC, mon service de données obtient des données de mon fichier (EF 4.1) .mdf. Mais il y a quelques Feild que je veux montrer avec l'authentification, par exemple:Comment autoriser uniquement l'accès à partir du service de données WCF ServiceOperation
public static void InitializeService(DataServiceConfiguration config)
{
config.SetEntitySetAccessRule("Exercies", EntitySetRights.All);
config.SetServiceOperationAccessRule("GetAllExercies", ServiceOperationRights.All);
config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V3;
}
[WebGet]
public IQueryable<Exercise> GetAllExercies(string name, string pass)
{
if (Membership.ValidateUser(name, pass))
return CurrentDataSource.Exercies;
else
return CurrentDataSource.Exercies.Where(e => e.Public == true);
}
Maintenant, quand httx d'accès utilisateur: //localhost/MyService.svc/Exercies, ils peuvent obtenir tout ce que bien qu'ils ne reçoivent pas le nom d'utilisateur et passe.
Ma solution temporaire est re nom GetAllExercies à seulement Exercies mais je ne sais pas est-il possible de mieux ...
Étant donné que les intercepteurs ne peuvent pas accepter les paramètres ... Je l'utilise simplement pour désactiver l'accès au jeu d'entités. Y a-t-il de meilleures solutions pour moi? – nvcnvn
Peu importe ... J'utilise maintenant HttpContext pour accéder à la chaîne de requête. – nvcnvn