2010-10-04 3 views
1

Chaque exemple que je vois utilise le fournisseur d'appartenance par défaut avec le nom d'utilisateurPasswordValidationMode, mais puis-je spécifier MembershipProvider pour userNamePasswordValidationMode dans ServiceCredentials pour un service REST WCF si j'ai un fournisseur d'appartenance personnalisé? Est-ce l'itinéraire suivant le meilleur de prendre si cela est possible:Pouvez-vous utiliser un fournisseur d'appartenance personnalisé avec userNamePasswordValidationMode?

  1. Créer un fournisseur d'appartenances personnalisé qui implémente fournisseur d'appartenances.

  2. Créez un CustomUserNamePasswordValidator qui implémente UserNamePasswordValidator et remplacez la méthode Validate.

  3. Dans la méthode Validate, vérifiez si un utilisateur existe dans la base de données.

Questions Je rencontrais sont, si j'ai une méthode de connexion dans mon service et il est appelé à partir d'un navigateur Web avec l'URL http://test.com/service.svc/login, comment puis-je obtenir le nom d'utilisateur et mot de passe. On suppose que le nom d'utilisateur et mot de passe peuvent être tapées dans une page Web ou il peut provenir d'une application smart device (Android, iPhone, etc.)

Répondre

0

Vous devriez pouvoir: [HowToUseNonDefaultMembershipProvider] [1] Dans l'étape 1 la page a deux liens supplémentaires, le premier vous montre comment créer la classe du fournisseur d'appartenance, le second montre les entrées de configuration nécessaires. Alors que la deuxième pourparlers de liaison sur la spécification du fournisseur par défaut vous pouvez effectivement indiquer un certain nombre de fournisseurs dans la configuration, l'un d'entre eux serait tout simplement arriver à être la valeur par défaut:

<system.web> 
    <membership defaultProvider="SqlProvider"> 
     <providers> 
      <clear /> 
      <add name="SqlProvider" 
    type="System.Web.Security.SqlMembershipProvider" 
    connectionStringName="MySqlConnection" 
    applicationName="MyApplication" 
    enablePasswordRetrieval="false" 
    enablePasswordReset="true" 
    requiresQuestionAndAnswer="true" 
    requiresUniqueEmail="true" 
    passwordFormat="Hashed" /> 
      <add name="MyProvider" 
        type="MyCompany.MyNamespace.MyMembershipProvider" /> 
     </providers> 
    </membership> 
</system.web> 

maintenant dans l'exemple de code à partir du lien ci-dessus vous pourrait avoir une ligne dans la méthode AuthenticationService_Authenticating comme ceci:

e.Authenticated = Membership.Providers["MyProvider"].ValidateUser(e.UserName, e.Password); 

dans votre classe de fournisseur personnalisé vous mettre en œuvre la méthode ValidateUser. Cela pourrait contenir n'importe quelle logique nécessaire pour valider le mot de passe & du nom d'utilisateur (qui sont passés à la méthode).

[1]: http://How: utiliser fournisseur d'appartenances non par défaut pour le service d'authentification WCF

+0

Steve, je pense que votre lien a été effectivement foiré. – Xaisoft

+0

dang il! le voici: http://msdn.microsoft.com/en-us/library/bb386455.aspx –

Questions connexes