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

Windows Communication Foundation .NET Discussion :

WCF multi interfaces


Sujet :

Windows Communication Foundation .NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté Avatar de Saintelaitlait
    Homme Profil pro
    Responsable ServiceDesk
    Inscrit en
    Août 2011
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Canada

    Informations professionnelles :
    Activité : Responsable ServiceDesk
    Secteur : Service public

    Informations forums :
    Inscription : Août 2011
    Messages : 179
    Par défaut WCF multi interfaces
    Bonjour à tous

    Je travail présentement sur un projet de refonte du service web que j'offre à mes clients qui veulent intéragir avec le progiciel de gestion TI CA SDM.

    Je veux donc refaire, à partir de zéro, un service en WCF qui fera un lien entre les utilisateurs qui veulent développer leur applications et mon progiciel.

    Toutefois, certaines applications seront développées à l'interne et nécéssiteront des fonctions que je ne souhaite pas offrir aux clients.

    J'ai donc créer deux interface (ServiceContract), et dans la méthode de mon service web j'implémente les méthodes(operationContract) de mes interfaces. Tout dépendant si je souhaite offrir telle ou telle méthode aux clients ou aux admins.

    Un point ou je bloque; j'aimerais savoir ma méthode a été "callée" à partir de quel interface?

    Mon SVC
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Public Class ISWPicci
        Implements IClientContract, IAdminContract
    Un des deux interfaces
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <ServiceContract()>
    Public Interface IClientContract
        <OperationContract()>
        Function clientCreerDDS(ByVal value As Integer) As String
    End Interface
    Une méthode dans le SVC
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Public Function creerDDS(ByVal value As Integer) As String Implements IClientContract.clientCreerDDS, IAdminContract.adminCreerDDS
    En winform j'arrive à le faire avec le stackFrame, mais en WEB avec WCF, je sèche.

    Donc si quelqu'un à une idée, je lui paie un verre

  2. #2
    Membre Expert
    Avatar de GuruuMeditation
    Homme Profil pro
    .Net Architect
    Inscrit en
    Octobre 2010
    Messages
    1 705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : .Net Architect
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 705
    Par défaut
    Avec Operationcontext (http://msdn.microsoft.com/en-us/libr...oncontext.aspx) tu peux trouver des infos sur la requête (aussi avec httpcontext, si tu es en compatibilité ASP)

    Pourquoi tu veux connaître l'interface appelle? Sécurité ?

  3. #3
    Membre expérimenté Avatar de Saintelaitlait
    Homme Profil pro
    Responsable ServiceDesk
    Inscrit en
    Août 2011
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Canada

    Informations professionnelles :
    Activité : Responsable ServiceDesk
    Secteur : Service public

    Informations forums :
    Inscription : Août 2011
    Messages : 179
    Par défaut
    Salut,

    En revenant au travail ce matin, avant de lire ta réponse j'ai trouver exactement ce que tu as proposé.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     OperationContext.Current.IncomingMessageHeaders.Action
    Ca semble renvoyé la dernière méthode callée par le client.

    En cherchant dans la string je trouve le nom de l'interface donc c'est parfait.

    La raison, sécurité oui et non.

    Je gère la sécurité à l'aide de groupe qui existe dans le progiciel. Je veux simplement lever une exception si un client essaie d'utiliser les méthodes Admin en étant pas admin, même si son groupe lui permet d'effectuer les mêmes tâches que la méthode.

    C'est seulement pour le forcer à utiliser l'interface Client. Car sans ca, il pourrait utiliser quelques une des méthodes Admin (en raison de ses groupe dans le progiciel).

    Ca fait pas professionnel du tout si un utilisateur peux développer une application web et utiliser certains méthodes dans mon interface Admin

    Finalement, merci pour ta réponse, tu avais entièrement raison!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. COM multi-interfaces en C# pour vbscript
    Par nico.exe dans le forum C#
    Réponses: 3
    Dernier message: 28/03/2011, 04h54
  2. [Débutant] multi interface graphique
    Par charpy dans le forum Interfaces Graphiques
    Réponses: 3
    Dernier message: 09/03/2010, 19h01
  3. Réponses: 1
    Dernier message: 13/03/2007, 20h55
  4. Réponses: 3
    Dernier message: 26/01/2007, 18h42
  5. interface : multi surface et objet
    Par DEVfan dans le forum SDL
    Réponses: 1
    Dernier message: 31/07/2006, 22h33

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