我们已将角度为4.3的.net核心2.1迁移到角度为5.2的.net核心2.1。
由于MapRoute定义发生了变化,现在我们无法从startup.cs进行Azure广告身份验证。为了参考,
上一个:
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
最新:
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller}/{action=Index}/{id?}");
});
以前,我们曾经在身份验证后导航到家庭控制器和index.cshtml。但是现在新模板中没有.cshtml。
答案 0 :(得分:0)
这可能是由于回复URL。
执行身份验证后,用户将被重定向到回复URL。 此URL在AAD中配置。
您可能已在回复URL中配置了应用程序的根URL,该URL不包含任何控制器或操作。这就是为什么应用程序无法将请求路由到任何地方的原因。
您可以在Azure门户中对此进行验证。
编辑: 根据您的评论,我建议您检查是否使用过“ UseDefaultFiles”。
UseDefaultFiles尝试查找名称为“ Default”或“ Index”的页面。但是,如果没有这些名称的页面,则需要编写自定义逻辑。
假设您要将“ mydefault.html”作为默认文档,则逻辑将如下所示。
public void Configure(IApplicationBuilder app)
{
// Serve my app-specific default file, if present.
DefaultFilesOptions options = new DefaultFilesOptions();
options.DefaultFileNames.Clear();
options.DefaultFileNames.Add("mydefault.html");
app.UseDefaultFiles(options);
app.UseStaticFiles();
}
答案 1 :(得分:0)
我遇到了将我的应用程序从angular 5 / .Net Core 2.0迁移到angular 7 / .Net Core 2.2时完全相同的问题,我找到了一种保留身份验证服务器端的方法。 解决该问题的方法是添加一个中间件,该中间件检查每个请求是否已通过身份验证,如果不是,则强制执行。
pandas.DataFrame