Azure App服务授权easy auth与ASP.NET Forms auth相冲突。

问题描述 投票:0回答:1

我想启用App Service身份验证来保护开发环境不被公开访问,App Service身份验证本身工作正常,只允许我们公司Azure AD的人访问,一切正常。

但是和网站本身的认证有冲突,通过Azure AD认证后,网站看到你已经登录了。而且我也不明白到底是怎么导致冲突的,我们使用的是表单认证,我试过明确命名表单认证应该寻找的cookie,并设置为始终使用cookie进行认证,然而还是冲突。

 <authentication mode="Forms">
      <forms name=".ASPXAUTH" loginUrl="~/sign-in" timeout="2880" requireSSL="true" cookieless="UseCookies" />
 </authentication>

通过microsoft登录后,我看到没有.ASPXAUTH cookie,只有AppServiceAuthSession,然而Forms auth却认为我已经登录。

asp.net-mvc azure azure-web-sites forms-authentication
1个回答
0
投票

我认为可以通过删除web.config中的auth设置来解决这个问题,并在网站本身认证之前使用OWIN注入一个中间件(CustomMiddleware)。如果用户通过了CustomMiddleware的认证,你就可以继续你的常规流程,否则就会导致请求流程的短路。在CustomMiddleware中,你可以检查请求的头部,身体等有认证的cookie等。我猜你的应用程序中有MVC风格的管道。在互联网上有很多资源,你可以探索。下面是一个例子。

https:/www.tutorialsteacher.comcorehow-to-add-custom-middleware-aspnet-core

© www.soinside.com 2019 - 2024. All rights reserved.