使用 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 起始页的主要内容,如果未能解决你的问题,请参考以下文章