在网上搜索了大量示例后,我正在努力解决似乎相当简单的要求。
我正在尝试扩展现有的使用表单身份验证的 ASP.NET 应用程序,以便它可以使用 OpenID Connect 进行身份验证以及来自身份提供者的一些角色信息。特别是我正在与我无法控制的现有托管身份提供者集成。
我将 ASP.NET MVC 与 OpenIdConnect 的 Owin 组件一起使用。即,
Microsoft.Owin.Security
Microsoft.Owin.Security.Cookies
Microsoft.Owin.Security.OpenIdConnect
Run Code Online (Sandbox Code Playgroud)
我能够成功地:
到现在为止还挺好!然而。
我未能掌握的内容以及我见过的大多数 Owin 示例似乎都没有解释:需要什么(如果有)额外配置才能让 ASP.NET 基于重定向在我的应用程序中实际创建经过身份验证的会话从身份提供者返回到我的应用程序。
我从文档中得到的一般感觉是,我不应该在 Owin 库中进行额外的配置——一旦我将系统配置为使用 cookie 身份验证和 OpenId Connect 库——它应该可以正常工作。然而,这似乎并不像看起来那么容易。我想我错过了一些东西。
一些具体的考虑/观察:
根据我发现的建议,我已经在 web.config 中以这种方式设置了身份验证节点,但是如果我排除了这个节点,它似乎没有什么区别。
<system.web>
<authentication mode="None" />
</system.web>
Run Code Online (Sandbox Code Playgroud)总结一下: