Asp.net ClaimsAuthenticationManager与IAuthenticationFilter与OWIN表单身份验证

Asp.net ClaimsAuthenticationManager与IAuthenticationFilter与OWIN表单身份验证,asp.net,asp.net-mvc,authentication,asp.net-mvc-5,owin,Asp.net,Asp.net Mvc,Authentication,Asp.net Mvc 5,Owin,.NET 4.5、MVC 5:ClaimsAuthenticationManager、IAAuthenticationFilter、OWIN表单身份验证和ClaimsPrincipals都是我上次接触网站的身份验证功能后新增的。我发现所有的文档都缺乏清晰的表述,说这或那是正确的方式。我甚至不知道哪些功能是相互排斥的 表示旧的ASP.NETFormsAuthenticationModule不支持声明,但新的OWIN不支持cookieless。然而,我感觉OWIN将成为一个向前发展的功能 产品路线图

.NET 4.5、MVC 5:ClaimsAuthenticationManager、IAAuthenticationFilter、OWIN表单身份验证和ClaimsPrincipals都是我上次接触网站的身份验证功能后新增的。我发现所有的文档都缺乏清晰的表述,说这或那是正确的方式。我甚至不知道哪些功能是相互排斥的

表示旧的ASP.NET
FormsAuthenticationModule
不支持声明,但新的OWIN不支持cookieless。然而,我感觉OWIN将成为一个向前发展的功能

  • 产品路线图是否说明了web应用的发展方向
  • ClaimsAuthenticationManager是否与web应用的OWIN表单身份验证同义
  • ClaimsAuthenticationManager和全局IAAuthenticationFilter是否相互排斥

  • 如果朝着正确的方向推进,我会很感激的,我的脑子都快被烧坏了。

    OWIN更大的范围是最小化服务网页的堆栈,最小化堆栈是未来的新浪潮(ala node.js)“OWIN认证中间件”就是您所指的,Brock Allen在这里最好地说明了这一点:

    对于.NET 4.5.1,对于ASP.NET应用程序,所有底层代码 处理“个人用户帐户”(以及 Visual Studio 2013)是新的。这意味着基于cookie的身份验证 我们不再使用表单身份验证和外部身份验证 提供程序我们不再使用DotNetOpenAuth

    替代品是一个名为OWIN身份验证中间件的框架 它的目标是OWIN API。我不打算在这里激励OWIN (这是一篇关于这个主题的好文章),但简而言之,这是一篇抽象的文章 web主机的API。许多框架,如WebAPI和SignalR(如 以及其他非Microsoft框架)都是按照这种抽象进行编码的 因此,它们不需要任何特定的web主机(如IIS)

    IAAuthenticationFilter 以前在MVC中,
    iaAuthorizationFilter
    是执行自定义身份验证的常用位置。在应用程序有两个授权规范,而只有一个身份验证规范的场景中可以看到此过滤器的原因。两个选项—将身份验证规范添加到单个任意授权例程,并将所有三个规范创建为不同的
    IAuthorizationFilter
    —都意味着我们不确保首先进行身份验证

    iaAuthenticationFilter
    最初添加到MVC程序集以解决此问题,然后重新定位以供WebAPI使用。在这里可以找到一篇很好的相关文章

    严格地说,
    iaauthenticationfilter
    和OWIN身份验证并不是相互排斥的,但OWIN身份验证将首先发生,并且可能会妨碍任何使用两者的意图

    OWIN表单身份验证 OwinFormsAuthentication是一个令人困惑的短语,我从阅读一篇措词不当的文章(上面链接)中得到的。它表示两个非依赖的解决方案组件:

    解决方案的“表单”方面的操作与之前表单身份验证的操作相同。这是授权失败的结果(例如,您将使用OWIN的
    [Authorize]
    属性或
    web.config
    属性发生的授权失败)。这是通过OWIN进行身份验证的一个好处

    以前,社交登录是以一种更加拼凑的方式出现的,即重定向和调用的
    MessageHandler
    。OWIN提供了一种重定向和处理身份验证提供程序回调的机制;有关详细信息,请阅读

    索赔认证经理

    <代码> CuraSunTnTiCaseMeals并不是听起来像什么。它确实是Windows身份基础(WIF)已经执行的身份验证过程的尾端方面。。它旨在转换该流程生成的声明以满足您的自定义需要。例如,声明列表可能包含一个用户名,您可以从该用户名中查找经常访问的数据库角色或权限,并出于性能原因将其添加到声明列表中

    它适用于使用WIF的任何地方。相对于当前的ASP.NET web应用程序,这将意味着OWIN

    总结 是的。你可能会在你的现代ASP.NET web应用程序中使用OWIN、WIF和Cookie。如果你使用“盒装材料”,以及WebForms和VB.NET在本版本中的消亡,这是可以接受的


    因此,由于您可能要进行OWIN身份验证,这里有一个关于该主题的优秀系列;

    好问题!这个水果沙拉仍然没有配方。+1IMHO,我们可以使用OWIN启用多种身份验证模式。所有这些都是基于声明的,我们可以在OWIN管道中插入任何身份验证机制作为中间件。但是对于Web apps,OWIN作为一个托管平台还不是独立的,有一个叫做Helios的项目来处理这个问题。我也在等待下一步,因为还不清楚OWIN是否是正确的发展方向。我不相信微软会再支持无Cookie认证会话,因为它们是固有的不太安全。0leg:您可能必须支持cookieless本质上不太安全的说法。通过“本质上”,您是在说“即使假设一个理想的实现”,我想不出原因是什么。例如,cookies与其他参数一样随每个请求一起传输。我能想到的唯一风险是,如果所有关键材料都出现在URL对话框的可见区域,视频监控可能允许重播。此外,要求cookies也有其自身的风险。我花了将近一年的时间要知道,这实际上是对我的问题的一个预期的答案,没有更多的明确性。不幸的是,它没有