使用外部OAuth处理本地身份验证

时间:2018-09-13 22:53:52

标签: asp.net oauth

我们当前有一个在IIS上运行的ASP.NET C#.net 4.7.2 Web应用程序。我们已经连接了该应用程序的安全性以使用OWIN。我们的startup.cs已配置

app.UseOpenIdConnectAuthentication(new OpenIdConnectAuthenticationOptions(...

按照事件顺序,我们得到

  1. RedirectToIdentityProvider =>进行身份验证之前转到OAuth
  2. SecurityTokenValidated <=身份验证后从OAuth输入

所以看起来不错。

上面的内容告诉我用户就是他们所说的那个人,但是当我们返回响应时,我将加载系统知道的关于用户的信息,并构建要在系统内部使用的声明主体。目前,如果我们禁用了该用户,我想正确处理。我目前正在抛出一个Exception,这会导致问题,因为我们的自定义错误页面(error.aspx)导致了OAuth提供者的循环,因为系统需要经过身份验证的用户才能访问我们的页面。

我在web.config中添加了一个位置节点(请参见下文),但这似乎被忽略了。现在我们处于验证地狱的循环中。

<location path="Error.aspx">
  <system.web>
    <authorization>
      <allow users="*" />
    </authorization>
  </system.web>
</location>

但这是我需要的建议。解决此问题的正确方法是什么?

如果抛出异常是正确的方法,我如何允许在没有身份验证的情况下查看error.aspx?

0 个答案:

没有答案