hey tout. J'ai une application ASP.NET MVC que je déploie bientôt sur un serveur en direct. Théoriquement, j'aimerais que le mot de passe protège l'application pendant que je suis testé bêta sans modifier la base de code sous-jacente ou l'adhésion dans l'application. J'aurai plusieurs personnes testées bêta, de sorte qu'il est obligatoire qu'il soit disponible sur le Web. Un scénario simple: p>
Stackoverflow a utilisé une technique similaire lorsqu'il s'agissait de test bêta. Des idées? P>
Modification de clarification. Je n'ai pas accès à IIS pour cette application particulière car j'utilise un hôte géré. P>
6 Réponses :
Quelques idées: p>
Je suis d'accord sur simplement laisser IIS le gérer. Quelques clics et vous ne passez à aucun moment à construire quelque chose que vous devrez annuler plus tard.
Désolé, j'ai négligé de mentionner que je ne peux pas accéder à IIS parce que j'utilise une solution gérée.
Lorsque vous cédez un nouveau projet ASP.NET MVC dans Visual Studio, vous obtenez automatiquement une contrectrice de compte qui utilise les membres sous-jacents sous-jacents ASP.NET pour fournir un mécanisme de connexion. P>
Même si vous ne l'avez pas dans votre application finale, vous pouvez l'utiliser comme solution temporaire jusqu'à ce que vous obteniez votre véritable mécanisme de sécurité en haut et en cours d'exécution. P>
Cela vous oblige à configurer une base de données SQL Server pour ces services ASP.NET, mais en fonction de votre familière avec cela, vous pouvez le faire dans les dix minutes à quelques minutes. P>
Lorsque la bêta publique est terminée, vous pouvez simplement supprimer la comptyController et la base de données. P>
Je suis avec Dhulk - Utilisez l'authentification Windows sur IIS. Cette route vous permettra d'éviter de mettre tout code d'authentification em> dans votre application. Plus simple, c'est mieux, et je voudrais éviter de faire le travail pour mettre en œuvre un système d'adhésion puis un em> -implementation. P>
Je créerais une vue de login simple qui définit une session qui est cochée sur Lorsque vous êtes prêt à ouvrir votre application pour tout le monde, supprimez simplement la vue et les trois lignes de code dans votre fichier global.asax em>. P> p> session_start () code> dans votre global.aSax em> fichier ... comme:
Eh bien, j'ai pensé à cela, mais malheureusement, l'état de la session n'est pas disponible dans l'événement Application_Start.
Que diriez-vous d'utiliser session_start () code> alors?
Juste coché. Vous pouvez accéder à l'objet de session sur session_start () code>. Voilà y aller :)
Vous pouvez filer un Autorizeattribute personnalisé rapide qui vérifie un cookie d'authentification personnalisé. Il suffit de décorer vos contrôleurs avec elle sous bêta et de les supprimer lorsque vous êtes prêt à partir.
Quelque chose comme ça (PS - l'a fait à la volée sans test): P>
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult BetaLogin(string username, string password)
{
if(username == "whatever" && password == "whatever")
{
//create custom cookie
return RedirectToAction("Index", "Home");
}
else
return View();
}
Pouvez-vous fournir une interface pour le fournisseur d'adhésion et modifier la mise en œuvre de cette interface lorsque vous allez en direct?
Eh bien, je ne suis pas sûr. J'utilise OpenID comme fournisseur de membres.
J'ai déjà posé une question similaire avant, mais cela n'a pas eu beaucoup d'activité, alors je suis heureux de le voir à nouveau. Plus d'entrées ici: Stackoverflow.com/questions/1171897/...