IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Services Web Discussion :

[WCF] Problème de Permissions.


Sujet :

Services Web

  1. #1
    Membre régulier

    Profil pro
    Inscrit en
    Août 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 60
    Points : 90
    Points
    90
    Par défaut [WCF] Problème de Permissions.
    Bonjour à tous,
    quoi de mieux par cette radieuse journée que de travailler dans un bureau ?

    Trève de bavardages !

    J'ai un petit problème que je n'arrive pas à résoudre; je vous explique la situation.

    J'utilise les composants asp.net pour le login, etc, en ayant changé le provider d'user et de role.

    Tout ceci marche très bien, mes membership se remplissent tout seuls lors du login, donc de ce côté-ci pas de soucis !
    Par contre j'ai des problèmes aux niveaux des permissions webservices (wcf).

    J'ai fait un webservice simple, avec un client web simple afin que ca vous prenne moins de temps à regarder ^^

    Donc voila l'appel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    test_secu.Itest_secuClient secu = new test_secu.Itest_secuClient();
     
                PrincipalPermission principalPerm = new PrincipalPermission(User.Identity.Name.ToString(), "");
     
                principalPerm.Demand();
     
                Response.Write(secu.add(5,7));
    Et voici le WCF :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
            [PrincipalPermissionAttribute(SecurityAction.Demand, Role = "blaoc")]
            public double Itest_secu.add(double x, double y)
            {
     
                //ClientCredentialsSecurityTokenManager getsec = new ClientCredentialsSecurityTokenManager(); (j'ai tout d'abord tenté de récuperer l'identité via le client credentials mais sans succès)
     
                return x + y;
     
            }
    Donc la fonction est toute simple, elle marche très bien, par contre la permission m'envoi une exception de sécurité :

    Exception de sécurité
    Description : L'application a essayé d'effectuer une opération qui n'est pas autorisée par la stratégie de sécurité. Pour accorder à cette application les autorisations requises, contactez votre administrateur système ou modifiez le niveau de confiance de l'application dans le fichier de configuration.

    Détails de l'exception: System.Security.SecurityException: Échec de la demande d'autorisation principale.

    Merci par avance, et profitez pour ceux qui sont en vacances

  2. #2
    Rédacteur
    Avatar de The_badger_man
    Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2005
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 745
    Points : 8 538
    Points
    8 538
    Par défaut
    Pourquoi tu lances une demande de permission dans le client ? C'est le service qui doit vérifier si l'utilisateur appartient bien au role blaoc afin de pouvoir utiliser le service (ce qui sera fait automatiquement avec PrincipalPermissionAttribute).

    Il faut que le client envoie ses identifiants. Mais ça dépend de ce que tu utilises coté service pour l'identification: autorisation ASP.NET, Windows, etc.
    Les règles du forum
    Le trio magique : FAQ + Cours + fonction rechercher
    Mes articles
    Pas de questions par messages privés svp

    Software is never finished, only abandoned.

  3. #3
    Membre régulier

    Profil pro
    Inscrit en
    Août 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 60
    Points : 90
    Points
    90
    Par défaut
    Merci,
    j'utilise le système ASP.net (Form authentication je crois) avec un provider personnalisé.

    Donc j'essai d'envoyer les attributs par ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     secu.ClientCredentials.UserName.UserName = "test" ;
                secu.ClientCredentials.UserName.Password = "maldus";
    Je vous tiens au courant

    Merci à toi The_badger_man

  4. #4
    Membre régulier

    Profil pro
    Inscrit en
    Août 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 60
    Points : 90
    Points
    90
    Par défaut
    Bonjour à tous,
    Voila j'ai un peu avancé, mais je bloque sur un autre point cette fois-ci.

    J'appel mon service WCF avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    test_secu.Itest_secuClient secu = new test_secu.Itest_secuClient();
     
                for (int i = 0; i < roles.Length; i++)
                {
                    try
                    {
                        PrincipalPermission sec = new PrincipalPermission(Membership.GetUser().ToString(), roles[i]);
                        Response.Write(roles[i]);
                        Response.Write(secu.add(5, 7));
                    }
                    catch
                    {
                    }
    Et mon WCF :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    [PrincipalPermissionAttribute(SecurityAction.Demand, Role = "xorg")]
            public double add(double x, double y)
            {
                    return x + y;
     
            }
    Le problème est que chaque utilisateur se voit attribuer différents roles, et j'aimerais tous les tester.

    Et la j'obtiens à chaque fois un problème lors de l'autorisation.


    Si quelqu'un peux me faire profiter de ses lumières je lui en serait reconnaissant !

    Merci

Discussions similaires

  1. [SCRIPT WMI]Problèmes de permissions...
    Par zell45 dans le forum Windows
    Réponses: 6
    Dernier message: 09/05/2006, 13h21
  2. problème de permissions avec fonction copy()
    Par jeanfrancois dans le forum Langage
    Réponses: 5
    Dernier message: 30/03/2006, 15h37
  3. problème de permission
    Par zave dans le forum Langage
    Réponses: 2
    Dernier message: 01/03/2006, 21h00
  4. problème de permission entre 2 serveurs
    Par dark-vtec dans le forum JWS
    Réponses: 4
    Dernier message: 14/12/2005, 08h16
  5. Problèmes de permission dans un sricpt perl
    Par Dosseh dans le forum Langage
    Réponses: 4
    Dernier message: 07/10/2005, 16h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo