Pouvez-vous utiliser un fournisseur d'appartenances personnalisé avec userNamePasswordValidationMode?

StackOverflow https://stackoverflow.com/questions/3858903

Question

Chaque exemple, je vois utilise le défaut du fournisseur L'adhésion à l'userNamePasswordValidationMode, mais puis-je spécifier MembershipProvider pour userNamePasswordValidationMode dans les ServiceCredentials pour un service WCF REST si j'ai un fournisseur d'adhésion personnalisée? L'itinéraire suivant le meilleur de prendre si cela est possible:

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

  2. Créer une CustomUserNamePasswordValidator qui implémente UserNamePasswordValidator et remplacer la méthode Validate.

  3. Dans la méthode Valider, valider si un utilisateur existe dans la base de données.

Les questions que je suis 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)

Était-ce utile?

La solution

Vous devriez être en mesure de: [HowToUseNonDefaultMembershipProvider] [1] Dans l'étape 1 a la page deux liens supplémentaires, la première vous montre comment construire la classe de fournisseur d'appartenances, la seconde montre les entrées de configuration nécessaires. Alors que les pourparlers de deuxième lien sur la spécification du fournisseur par défaut, vous pouvez spécifier un nombre réellement de fournisseurs dans la configuration, l'un d'entre eux serait tout simplement arriver à 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>

dans le code échantillon à partir du lien ci-dessus vous pourriez 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 mettrait en œuvre la méthode ValidateUser. Cela pourrait contenir tout logique nécessaire pour valider le nom d'utilisateur et mot de passe (qui sont transmis à la méthode).

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top