128 votes

Comment définir la page par défaut en ASP.NET?

Y a-t-il une section ou un code qui nous permet de définir la page par défaut dans web.config ?

Par exemple, lorsque les gens visitent mon site web pour la première fois, je veux qu'ils voient CreateThing.aspx plutôt que Default.aspx.

Les solutions que je connais déjà :

  1. Mettre cette ligne de code => Response.Redirect("CreateThings.aspx") dans l'événement Page_Load de Default.aspx, mais cette méthode est vraiment naïve.

  2. Nous pouvons utiliser IIS (configuration de la page par défaut), mais je veux faire la même chose sur mon application ASP.NET.

  3. Cela pourrait être une autre solution pour le moment :

240voto

David Glenn Points 12819

Si vous utilisez IIS 7 ou IIS 7.5, vous pouvez utiliser

https://learn.microsoft.com/fr-fr/iis/configuration/system.webServer/defaultDocument/

5 votes

J'ai trouvé que j'avais besoin d'ajouter l'attribut enabled="true" à la balise defaultDocument, c'est-à-dire :

0 votes

@JohnFerguson Merci pour ça.

2 votes

Cela doit être ajouté dans la balise du fichier Web.config.

23voto

user1469363 Points 99

Conseil n° 84 : Saviez-vous... Comment définir une page de démarrage pour votre site Web dans Visual Web Developer ?

Cliquez simplement avec le bouton droit sur la page que vous souhaitez être la page de démarrage et sélectionnez "Définir comme page de démarrage".

Comme noté dans le commentaire ci-dessous par Adam Tuliper - MSFT, cela ne fonctionne que pour le débogage, pas pour le déploiement.

1 votes

Hmm. Fonctionne en local, mais pas après le déploiement sur Azure.

0 votes

La réponse acceptée n'a pas fonctionné pour moi, mais cela a marché ! Merci !

6 votes

@vivekmaharajh ce n'était pas par défaut car cela est destiné à tester/déboguer - cette technique ne configure pas votre serveur web mais uniquement votre environnent de développement.

10voto

this. __curious_geek Points 23728

Map default.aspx as HttpHandler route and redirect to CreateThings.aspx from within the HttpHandler.

Assurez-vous que Default.aspx n'existe pas physiquement à la racine de votre application. S'il existe physiquement, le HttpHandler ne sera pas en mesure d'exécuter. Le fichier physique prend le dessus sur la correspondance HttpHandler.

De plus, vous pouvez réutiliser ceci pour des pages autres que default.aspx.

//RedirectHandler.cs dans votre App_Code

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

/// 
/// Description du résumé pour RedirectHandler
/// 
public class RedirectHandler : IHttpHandler
{
    public RedirectHandler()
    {
        //
        // TODO: Ajoutez la logique du constructeur ici
        //
    }

    #region Membres IHttpHandler

    public bool IsReusable
    {
        get { return true; }
    }

    public void ProcessRequest(HttpContext context)
    {
        context.Response.Redirect("CreateThings.aspx");
        context.Response.End();
    }

    #endregion
}

0 votes

Ainsi, vous dites que chaque fois qu'une requête est envoyée à Default.aspx, le gestionnaire redirigera la requête vers CreateThing.aspx. Cela semble être une solution générique. Merci.

0 votes

Mais cela ne causerait-il pas de pollution HttpHandler ?

0 votes

Après votre édition, je dois dire : Eh bien ça pourrait être. Je pense que la chose simple serait comme Application.Run(new Form()1) :)

4voto

Zooking Points 1487

Si vous utilisez l'authentification par formulaire, vous pouvez essayer le code suivant :

0 votes

Pour utiliser l'authentification par formulaire, dois-je utiliser les fournisseurs MemberShip ou autre chose ? Je veux dire que lorsque je sélectionne simplement le mode d'authentification comme formulaire plutôt que Windows, ce code fonctionnera charmant, n'est-ce pas ?

0 votes

Je dirais que cela dépend de la solution. Si vous avez besoin d'une solution plus complexe avec différents profils d'utilisateurs, vous devriez opter pour MembershipProviders. Mais s'il s'agit d'une configuration plus simple, vous pourriez simplement utiliser et .

3voto

JD-V Points 648

Si vous utilisez une page de connexion sur votre site web, allez dans le fichier web.config

remplacez votre balise d'authentification par celle ci-dessus (où index.aspx sera votre page de démarrage)

et une chose de plus, écrivez ceci dans votre fichier web.config à l'intérieur

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X