J'ai une application Web qui utilise les fournisseurs d'adhésion ASP.NET et de fournisseurs d'adhésion ASP.NET permettant de permettre des connexions membres de certains rôles d'avoir accès à diverses pages en fonction des assignations de rôles. p>
Pendant le débogage, j'aimerais que l'application se connecte automatiquement avec un compte de test, je peux donc vérifier la fonctionnalité des affectations de rôle et ne doit pas avoir à passer des informations d'identification sur la page de connexion à chaque fois. Y a-t-il un moyen facile de faire cela? P>
7 Réponses :
Pourriez-vous simplement mettre le code dans l'événement de chargement pour définir les chaînes de nom d'utilisateur et de mot de passe et de tirer l'événement OnClick du bouton de connexion? P>
Une alternative existe également des outils tels que l'IDE sélénium qui est un plugin pour Firefox. Son objectif principal est de fournir une sorte de test pour l'UIS. Pour cela, vous pouvez enregistrer des actions effectuées sur l'interface utilisateur. Ce que vous pouviez faire est d'enregistrer les informations d'identification que vous entrez pour l'utilisateur test une fois et les enregistrer. La prochaine fois que vous revenez, vous exécutez le script qui remplit automatiquement les informations nécessaires. P>
Il existe d'autres outils spécialisés dans le but de remplir automatiquement un formulaire sur une page Web. Le sélénium est plus pensé comme un évirencement des tests, mais je l'ai également utilisé à de telles fins. Bien sûr, ceci est juste une solution de contournement. P>
dans l'événement de page_LOAD que vous pouvez utiliser FormsAuthentication.setAuthCookie:
dans la méthode Application_AuthentiCaeQuest (aka the Applications AuthenticateRequest Event) dans le fichier global.asax, ajoutez un code qui vérifie si vous exécutez le site dans le débogueur (quelque chose comme System.Dignostics.debugger.isattached) et, si vous êtes Devez-le créer le ticket de connexion, créer le cookie et l'attacher à la session. La bibliothèque de formulaires fournit ce dont vous avez besoin si la fournisseur d'adhésion HTE ne l'a pas. P>
Ce code fait le travail. Dans login.aspx's's's's's's's's's's's's's ''s Event:
Membership.ValidateUser("<userName>", "<password>") FormsAuthentication.RedirectFromLoginPage("<userName>", True)
Jeff a raison, vous pouvez le faire à travers Global.Asax Méthode:
protected void Application_AuthenticateRequest(object sender, EventArgs e) { if(System.Diagnostics.Debugger.IsAttached && User == null) { FormsAuthentication.SetAuthCookie("dmike", false); } }
Presque là; Je suis authentifié, mais la page login.aspx est toujours trébuchée et m'inquitte des informations d'identification.
Votre page de connexion est la page par défaut? Parce que c'est ce que je pense que c'est un problème ... Essayez de configurer une autre page en tant que défaut et de définir l'authentification pour rediriger la page de connexion uniquement si l'utilisateur n'est pas authentifié ...
La page par défaut est définie sur la page que je travaille sur (non login.aspx).
+1 Vous pouvez également utiliser formesAuthentication.redirectfromloginPage ("dmike", false) code> pour définir la cookie et rediriger de la page de connexion.
Y a-t-il un moyen de rediriger la page à la page demandée à l'origine et non à la page par défaut?
Peu importe ma question. Un simple réponse.redirect (httpcontext.current.request.rawurl) code> à l'URL de la demande d'origine vous conduit à cette page.
Le FormsAuthentication.redirectFromLoginPage utilise la valeur par défaut pour décider où rediriger après la connexion. Alors assurez-vous que vous avez une URL valide autre que votre loginpage.aspx défini.
FormsAuthentication.RedirectFromLoginPage("userName", True); <authentication mode="Forms"> <forms loginUrl="~/Account/Login.aspx" ... defaultUrl="~/AnyFolder/PageAfterLogin.aspx" ... /> </authentication>
Vous devriez accepter La réponse .