Mvc 起始页使用带有域的 azure 上的区域

Mvc start page using areas on azure with domain

我有一个使用区域的 mvc 网络应用程序。在我的开发者机器上,网站以正确的页面启动。在我的 vs studio 的设置中,我已将启动操作设置为我的区域。我无法让它在 azure 上运行。

起始区域为身份验证。

在 azure 上,我有一个自定义域,我们称它为“mydomain.co.za”。 当我调用域时,它说“找不到资源。”

我必须打电话给“mydomain.co.za/authentication”。

我需要它通过 mydomain.co.za 路由到身份验证 Web 配置中是否需要特定的配置?请协助。

我认为可以通过重写规则来实现,但是,我正在努力适应它。

目前我有一个从 http 转换为 https 的规则,但不确定该区域适合

<directoryBrowse enabled="false" />
        <httpRedirect enabled="false" destination="https://mydomain.co.za" exactDestination="true" />
        <rewrite>
            <rules>
                <rule name="http to https" enabled="true" stopProcessing="true">
                    <match url="(.*)" />
                    <conditions>
                        <add input="{HTTPS}" pattern="^OFF$" />
                    </conditions>
                    <action type="Redirect" url="https://www.mydomain.co.za/{R:1}" redirectType="SeeOther" />
                </rule>
            </rules>
        </rewrite>

我对 azure 很陌生,所以我也不确定这是否需要在网络配置中完成,或者我是否可以在 azure 网络应用程序设置中配置它?

看了你的描述,我断定你要的是Areas里面的A.cshtml页作为起始页。 Areas 区域中的 Startup Page 需要身份验证。如果没有通过验证,请到authentication.cshtml进行登录验证。

如果我的总结没有错误,你需要注意的点不是rewrite。应该是实际的routing configuration。具体操作步骤我将在下面展示截图。已经全部部署到azure上进行测试,测试顺利通过

你可以download my demo for test.

RouteConfig.cs

    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        var route = routes.MapRoute("Default", "{controller}/{action}/{id}", new { controller = "Home", action = "Index", id = UrlParameter.Optional },
            namespaces: new[] { "areaproj.Areas.Admin.Controllers" }
        );
        route.DataTokens["area"] = "Admin";
    }

Areas/Admin/Views/Home/Index.cshtml(启动页)

    public ActionResult Index()
    {
        bool IsAuth = false;
        if (IsAuth)
            return View();
        else
            return View("~/Areas/Admin/Views/Home/test.cshtml");
    }