我成功地使用自己的租户和Azure Active Directory B2C获得了github示例“ active-directory-b2c-dotnet-webapp-and-webapi”。它按预期工作。当我从头开始创建自己的MVC项目并将每件事复制到完全相同的dll时,它无法再现与示例相同的结果。尝试在MSALSessoCache类的Load方法中反序列化HttpContext.Session时,它将失败。
当在OnAuthorizationCodeReceived中时,我可以看到我获得了带有正确信息和声明的令牌。它还在门户审核日志中反映为成功。单步执行代码时,反序列化在转换为blob时会导致空对象异常。我可以在示例中看到用户信息以及它可以正常运行的事实,我假设Azure租户是正确的。
我创建了带有“无身份验证”的新.net 4.7.2 MVC应用程序,将其更改为HTTPS,并更新了属性中的项目网址。我通过验证OWIN Startup.cs类和Startup.Auth.cs复制了代码。一切都相同,只是web.config中的https重定向url和https TaskServiceUrl例外,甚至与dll的版本完全相同。我还验证了使用Azure B2C在租户应用程序安装程序中添加了正确的https URL。我很茫然。
答案 0 :(得分:0)
在一些帮助下,我们发现将Microsoft.Identity.Client dll降级到1.1.0.0预发行版本可以解决问题。我知道1.1.4.0和2.0.0不能工作。无法说1.1.1.0、1.1.2.0或1.1.3.0是否有效。谢谢asmithKinegdo