当前位置: 首页 > 知识库问答 >
问题:

Azure应用服务自定义身份验证System.ArgumentNullException:"值不能为空""参数名称:提供者"

冯庆
2023-03-14

我有一个简单的点网移动应用程序,具有自定义身份验证,如下示例:(https://docs.microsoft.com/en-us/azure/app-service-mobile/app-service-mobile-dotnet-backend-how-to-use-server-sdk#custom-认证)

我有一个生成JWT令牌的endpointhttps://test2ixresearcher.azurewebsites.net/.auth/login/custom?username=ade@ixcompany.com

这将创建一个令牌,我使用该令牌在X-ZUMO-AUTH头中提供的令牌调用安全endpoint:https://test2ixresearcher.azurewebsites.net/api/SecuredData-使用不正确的令牌或令牌缺失调用endpoint将返回401,如预期的-使用刚刚创建的令牌调用endpoint将生成500,并显示以下消息,无预期

--启动错误消息-- 应用程序:2018-09-22T23:12:20 PID[5520] 关键系统。参数空异常:值不能为空。应用程序: 参数名称: 提供程序 应用程序: at Microsoft.Azure.AppService.Authentication.EasyAuthTokenStore.d__7.MoveNext() 应用程序: --- 从---引发异常的先前位置的堆栈跟踪结束

--end Error消息--我也有一个不安全的endpoint,这没有任何问题。https://test2ixresearcher.azurewebsites.net/api/UnSecuredData

我已经用这种模式部署了至少4个其他应用程序,这是第一次出现这种错误。错误出现在身份验证中,似乎成功验证了令牌颁发者并拉出了用户,在命中我的代码之前失败。

我的代码可以在 https://github.com/antitheos/publictesting/tree/master/TestAzureCustomLogin 找到

当在通过门户或Visual Studio创建的新应用程序服务中发布到azure时,会发生这种情况。我有旧的应用程序服务,但我害怕尝试发布给他们,以防我破坏正在运行的实时应用程序。

任何帮助都将不胜感激。

共有1个答案

勾长卿
2023-03-14

好吧,微软发现了问题!

产品团队发现了一个回归错误,现在计划在下一个版本中修复,时间大约为一个月。同时,您可以通过以下步骤解决此问题。

  1. 打开 Azure 门户,导航到应用服务
  2. 单击“资源浏览器”边栏选项卡
  3. 在站点节点下,展开配置节点,然后单击“身份验证设置”。
  4. 在顶部窗格中,确保已选择读/写。
  5. 单击编辑按钮
  6. 将运行时版本修改为 = 0.0.0
  7. 点击看跌
  8. 点击发布
  9. 重新启动您的网站。
 类似资料:
  • 我正在尝试使用自定义身份验证提供程序配置Spring Security性。但是,我想在服务中自动装配以处理实际的数据库身份验证。我已经验证它在没有这个自动装配bean的情况下工作(只是在提供程序中硬编码)。我也在使用SpringMVC与hibernate结合使用。我目前正在使用根配置(hibernate等)和webMVC使用java注释和Spring使用xml进行混合方法。我知道这是不赞成的,但我

  • 我正在将应用程序的安全性迁移到Spring Security4.0。我的要求是身份验证应该是JAAS身份验证,自动化数据将从数据库中提取。所以我已经编写和自定义了身份验证提供程序。但我的问题是Spring没有将身份验证请求委托给我的自定义身份验证提供程序。 代码如下 web.xml条目 调用堆栈

  • 在我的网络项目中,我想让用户使用用户名/密码和微软帐户登录。技术-堆栈: Asp.网络核心 角 Azure应用服务 首先,我创建了用户名/密码登录。这样地: 启动。反恐精英: 登录方式: 并通过[授权]保护我的api enpoints。到现在为止,一直都还不错。。。这很有效。 现在我想添加一个登录方法与Microsoft帐户。我使用Azure应用服务身份验证/授权(https://docs.mic

  • 于是我在这里看到:https://firebase . Google . com/docs/auth/web/account-linking # link-auth-provider-credentials-to-a-user-account现在可以在Firebase中链接用户账号了。我还看到Firebase提供了匿名认证的功能,它为一个用户创建一个用户会话,不需要任何凭证。 在我们的应用程序中,

  • 我正在尝试让我自己的身份验证服务与我的nextJS应用程序一起工作。我自己的身份验证服务是一个简单的rest api,在输入正确的凭据时返回JWT访问令牌和JWT刷新令牌。 目前,我正在将JWT刷新令牌设置为httpOnly cookie,并将JWT访问令牌设置为我的nextjs应用程序中的状态变量(内存中)。 我被困在以下几点: > 如何将此访问令牌传递给? 我想将存储在内存中的访问令牌传递给,

  • 在过去的几周里,我一直在努力掌握KeyClope,这样我就可以实现一种使用遗留提供商(基于Oracle,带有会话表和各种奇怪的东西)对用户进行身份验证的方法。我们计划在不久的将来解决这个问题,但目前我们必须解决这个问题,所以我们的想法是在前线使用KeyClope——利用它提供的主要好处,比如SSO——在需要身份验证的应用程序中省略传统的身份验证提供程序。 我读了一些关于构建自定义OIDC身份提供程