Как установить Страницу По умолчанию в ASP.NET?

Есть ли любой раздел или код, который позволяет нам устанавливать страницу по умолчанию в web.config?

Например, когда люди сначала посещают мой веб-сайт, я хочу, чтобы они видели CreateThing.aspx вместо Default.aspx.

Решения я уже знаю:

  1. Поместите эту строку кода => Response.Redirect("CreateThings.aspx") в Default.aspx Page_Load событие, но этот метод действительно наивно.

  2. Мы можем использовать IIS (конфигурация страницы по умолчанию), но я хочу переделать то же самое на своем приложении ASP.NET.

  3. Это могло быть другим решением на данный момент:

    <defaultDocument>
        <files>
            <clear />
            <add value="Default.aspx" />
            <add value="Default.htm" />
            <add value="Default.asp" />
            <add value="index.htm" />
            <add value="index.html" />
            <add value="iisstart.htm" />
        </files>
    </defaultDocument>
    
127
задан TylerH 7 May 2019 в 20:57
поделиться

3 ответа

If using IIS 7 or IIS 7.5 you can use

<system.webServer>
    <defaultDocument>
        <files>
            <clear />
            <add value="CreateThing.aspx" />
        </files>
    </defaultDocument>
</system.webServer>

https://docs.microsoft.com/en-us/iis/configuration/system.webServer/defaultDocument/

238
ответ дан 24 November 2019 в 00:44
поделиться

Сопоставьте default.aspx как маршрут HttpHandler и перенаправьте на CreateThings.aspx из HttpHandler.

<add verb="GET" path="default.aspx" type="RedirectHandler"/>

Убедитесь, что Default.aspx не существует физически в корне вашего приложения . Если он существует физически, HttpHandler не получит никаких шанс выполнить. Физический файл переопределяет отображение HttpHandler.

Более того, вы можете повторно использовать это для страниц, отличных от default.aspx.

<add verb="GET" path="index.aspx" type="RedirectHandler"/>

// RedirectHandler.cs в вашем App_Code

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

/// <summary>
/// Summary description for RedirectHandler
/// </summary>
public class RedirectHandler : IHttpHandler
{
    public RedirectHandler()
    {
        //
        // TODO: Add constructor logic here
        //
    }

    #region IHttpHandler Members

    public bool IsReusable
    {
        get { return true; }
    }

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

    #endregion
}
9
ответ дан 24 November 2019 в 00:44
поделиться

Если вы используете аутентификацию с помощью форм, вы можете попробовать следующий код:

<authentication mode="Forms">
<forms name=".FORM" loginUrl="Login.aspx" defaultUrl="CreateThings.aspx" protection="All" timeout="30" path="/"> 
</forms>
</authentication>
4
ответ дан 24 November 2019 в 00:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: