MVC5 OWIN项目中的Cookie + Basic或Cookie + Digest身份验证

时间:2014-08-11 17:03:33

标签: asp.net-mvc-5 basic-authentication owin digest-authentication mixed-authentication

我需要在ASP.NET MVC5 OWIN项目中支持混合(Cookie + Basic或Cookie + Digest)身份验证。

目标是轻松地向使用Cookie或其他自定义身份验证的任何 Visual Studio项目添加基本身份验证或摘要式身份验证(使用我们的自定义向导)。

混合身份验证(即Cookie + Basic)应按如下方式运行:

  1. 尝试Cookie身份验证;
  2. 如果上述操作失败,错误403 (在我们的例子中,如果从MS Office应用程序访问资源),而是 " 403未授权"响应发出基本身份验证。
  3. 上面也称为Mixed Authentication Disposition,我们一直在使用自定义HTTP模块在MVC5 / OWIN之前的Visual Studio早期版本中实现这一点。

    我现在要实施的最简单的解决方案是:

    1. 从中创建Microsoft.Owin.Security.Cookies中间件的副本 Katana project来源;
    2. 在AuthenticationHandler实现中实现回退到基本(或摘要)身份验证。 对于基本身份验证,我将使用Thinktecture.IdentityModel库中的实现。
    3. 使项目使用新的中间件而不是cookie中间件。
    4. 不幸的是,Microsoft实施中的很多课程都有#34;内部"访问修饰符, 因此我发现自己必须从Microsoft实现中复制大量代码。

      任何更好的建议如何在收到错误403时实现从Cookie回退到基本或摘要式身份验证(我需要两种实现)?

0 个答案:

没有答案