asp.net-mvc - Azure 应用服务授权/简易身份验证与 ASP.NET 表单例份验证冲

我想启用应用服务身份验证以保护开发环境免受公共(public)访问。 应用服务身份验证本身工作正常,仅允许我们公司 Azure AD 的人员,一切都很好。

但这与网站本身的身份验证相冲突,通过 Azure AD 进行身份验证后,网站会看到您已经登录。 我不明白它到底是如何最终发生冲突的,我们正在使用表单例份验证,我尝试显式命名表单例份验证应该查找的 cookie,并将其设置为始终使用 cookie 进行身份验证,但它仍然存在冲突。/p>

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

通过 Microsoft 登录后,我看到没有 .ASPXAUTH cookie,只有 AppServiceAuthSession,但 Forms auth 认为我已登录。

最佳答案

我认为您可以通过删除 web.config 中的身份验证设置并使用 OWIN 在网站本身的身份验证之前注入(inject)中间件(CustomMiddleware)来解决此问题。如果用户通过您的 CustomMiddleware 进行身份验证,您将继续常规流程,否则会短路请求流程。在 CustomMiddleware 中,您可以检查请求 header 、正文等以验证 cookie 等。我猜您的应用程序中有 MVC 风格的管道。互联网上有许多资源可供您探索。下面是一个示例。

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

关于asp.net-mvc - Azure 应用服务授权/简易身份验证与 ASP.NET 表单例份验证冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61400437/

相关文章:

php - Drupal 8.8.5 上奇怪的文件/文件夹权限错误

google-cloud-platform - 将日志严重性与 Google Compute Eng

c# - 找不到 Xamarin.Forms 资源文件

domain-driven-design - DDD : How to save the order

vue.js - vue js项目中的动态站点地图生成器

python - 如何访问通过 Django 表单上传的媒体文件?

python - 无法安装最新版本的 pandas (1.0.3)

ruby-on-rails - URL 参数被转换为看似乱码的字符

javascript - Ajax 多重上传

java - 获取对 java LinkedList 中最近添加的节点的引用