使用 azure 上的区域和域的 Mvc 起始页

Posted

技术标签:

【中文标题】使用 azure 上的区域和域的 Mvc 起始页【英文标题】:Mvc start page using areas on azure with domain 【发布时间】:2020-10-25 13:58:38 【问题描述】:

我有一个使用区域的 mvc Web 应用程序。在我的开发人员机器上,网站以正确的页面启动。在我的 vs 工作室的设置中,我已将开始操作设置为我的区域。我无法让它在 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 很陌生,所以我也不确定这是否需要在 web config 中完成,或者我是否可以在 azure web 应用程序设置中进行配置?

【问题讨论】:

程序根据我的回答修改,不需要在portal或web.config中修改任何内容。 我的回答对你有用吗? 【参考方案1】:

看了你的描述,我断定你想要的是Areas中的页面A.cshtml作为起始页面。区域区域中的启动页面需要身份验证。如果没有通过验证,请到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");
    

【讨论】:

这有效并且解决了我的问题。非常感谢您的好先生

以上是关于使用 azure 上的区域和域的 Mvc 起始页的主要内容,如果未能解决你的问题,请参考以下文章

用于自定义电子邮件和域的 C# 正则表达式

本公司的域的组织单元和域的用户备份

在 PHP 中重定向子域和域的非标准情况

带有实例名称和域的 JDBC 连接字符串

如何部署林根域子域和域

如何从网络解决方案中间和域证书文件为 Azure 网站创建 PFX 证书导出?