Je veux les avantages de l'authentification de formulaire dans ASP.NET. Je veux que cela persiste l'autorisation de moi et de telle, mais il y a une chose différente de ma situation; Je veux vous authentifier contre un simple service Web (spécifiquement fourni par le client).
J'ai mon code en place pour regarder le site Web et voir s'ils doivent em> devraient être autorisés, mais comment J'ai défini le cookie [?] Ou le drapeau d'autorisation dans ASP.NET qu'ils connaissent que l'utilisateur actuel est autorisé. P>
Fondamentalement ... P>
if (HttpContext.Current.User.Identity.IsAuthenticated) // we're all good //Other wise... bool success = CheckClientsWebService(string username, string password); if (success) // Somehow tell .NET that they're authorized
3 Réponses :
Comme Wiktor a commenté, mettez votre propre MembresProvider . Il suffit de mettre en œuvre les méthodes dont vous avez besoin, laissez le reste à lancer un Dans votre cas, il semble que tout ce que vous devez implémenter est Ensuite, vous pouvez utiliser toutes les trucs d'authentification et d'autorisation intégrés standard. P> notamplementeedException code>. P>
Bool Public Bool Validateuer (Nom d'utilisateur String Nom, String Mot de passe) Code> - La mise en œuvre doit simplement faire appel à votre site Web. P >
Dans les formulaires L'authentification n'est pas la preuve de qui vous êtes dans le cookie d'authentification des formulaires.? Avec cela à l'esprit, vous ne pouvez pas créer le billet dans un formulaire de connexion personnalisé sans avoir à créer un fournisseur personnalisé? Je penserais certainement que tu pouvais. Faites un test rapide et créez un ticket d'authentification des formulaires et voyez si le fournisseur d'appartenance à l'extérieur considère l'utilisateur authentifié.
J'étais curieux - alors voici un code .. p>
contrôleur strong> p>
Salut, FormsAuthentication.settauthcookie (Model.Ausername, False); ne fonctionne pas pour moi. J'utilise mvc 5
@Rahulpatel utilisez-vous l'espace de noms System.Web.Security? Il devrait être pris en charge dans mvc5 / asp.net 4.5+ msdn.microsoft.com/en-us/library/...
@RAHULPATEL - MVC 5 est livré avec ASP.NET Identity activé par défaut qui désactive les formateurs.
Je suis peut-être sur la simplification de cela, mais la façon dont je lis est la suivante:
Si ce qui précède est correct, vous n'avez pas besoin d'un fournisseur d'adhésion. L'attribut [Autoriser] a simplement l'air que le cookie d'authentification des formulaires pour voir s'il a été défini et est valide pour la durée de vie actuelle du cookie. Ce cookie d'authentification stocke le nom d'utilisateur de l'utilisateur et de l'heure d'expiration du cookie (et d'autres choses, mais pas d'importance ici). P>
donné que, vous devez définir votre élément de configuration Web.config et avoir Une méthode pour définir le cookie d'authentification. p>
web.config strong> p> URL de connexion à la connexion forte > p> URL de la connexion Post Action strong> p> une fois que vous avez appelé le Fonction .Settauthcookie () code> fonction, l'utilisateur aura maintenant un ticket d'authentification et des appels à
httpcontext.user.entity.isauthenciated code> sera vrai tant que le cookie n'a pas expiré et que vous pouvez obtenir Le nom d'utilisateur de
httpcontext.user.identity.name code> p> p>
On dirait que vous avez besoin d'un fournisseur de membre personnalisé qui vérifie l'authentification de votre base de données et également dans le service Web. C'est cependant une solution aussi simple que je pense manquer quelque chose d'important; Sinon, vous auriez bien sûr venir avec une telle solution par vous-même.
Je n'ai même pas besoin d'une vérification de la base de données, je regarde simplement un service Web et je vois si le nom d'utilisateur / mot de passe est correct. Il suffit de savoir comment persister que l'utilisateur est "authentifié".
Vous devez créer votre propre fournisseur d'adhésion et publier des cookies d'authentification des formulaires. Ceci est une matière standard.
Puisque vous n'avez pas besoin de gérer des groupes ou des rôles, envisagez simplement de définir manuellement le formulateur de Guissauthenticationcookie. Voir Stackoverflow.com/Questtions / 7524136 / ... pour plus de détails.