2017-08-02 39 views
0

我为我的公司创建了一个NET Core Web应用程序,利用单租户Azure AD身份验证。该应用程序是用于设置其他(传统)应用程序使用的变量的管理工具。根网址类似"https://mycompanyadmintool.azurewebsites.net"。它工作得很好。.NET核心:如何更改基于URL结构的身份验证?

现在我被要求将我们称之为“传统认证”的东西添加到应用程序中。这是一个临时解决方案,希望很快会被丢弃。基本上这意味着当应用程序被调用时使用这样的网址:"https://mycompanyadmintool.azurewebsites.net/<some Guid or string or number or whatever>",应该绕过Azure AD登录。然后URL的最后部分将被验证并且验证成功与否。

无论我尝试什么,我都无法绕过Azure AD身份验证(除非完全禁用它),并且无需大量黑客和廉价技巧(大量错误代码)就可以实现此功能。

我对.NET Core和中间件+++相当陌生,在这里需要一些指导。我试图研究MVC路由,感觉解决方案的一部分可能与路由有关。

有没有人有关于如何做到“正确”的建议?感谢任何帮助或建议。

回答

0

您可以尝试在单独的认证中在请求管道中打开一个单独的分支。这应该使用app.Map或app.MapWhen方法:https://docs.microsoft.com/en-us/aspnet/core/fundamentals/middleware

app.Map("/subpath", sub_app=> { 
    sub_app.UseWhateverAuth(); // <= custom auth 
    // ... 
    sub_app.UseWhateverMiddleware(); 
    sub_app.UseMvc(); 
}); 
+0

感谢您指向我的文档。我不知道“app.Map” - 看起来很有希望。 我会试试这个,并得到结果。 – JorgenH

相关问题