ASP.NET Identity 2.0,自托管OWIN,NTLM和应用程序角色持久性

时间:2014-12-16 09:28:10

标签: c# asp.net-web-api2 owin asp.net-identity-2

我目前正试图了解ASP.NET Identity 2.0,并且在某些方面我没有找到答案:

这是我的设置:

  • 使用Nowin托管的WebAPI 2(我需要完整的SignalR,但我的服务器没有运行2012 r2)
  • 自定义NTLM实现
  • ASP.NET Identity 2.0,拥有自己的IdentityDbContext<>

到目前为止工作的是什么:

  • WebAPI
  • 自定义NTLM AuthenticationHandler<>(我可以访问ApiControllers中的User.Identity
  • 添加声明

我的实际问题

我添加到身份中的声明不会持久存储到数据库中,因此它们无法在应用程序重新启动后继续存在,也无法正确链接到实际的Windows身份,因此两个会话&#34;同一用户可以有不同的声明。

我实际上期望ASP.NET Identity 2.0创建某种&#34;本地(应用程序)用户&#34;一旦我通过身份验证(来自成功的NTLM握手)存储了应用程序声明。

我很确定某处有一些管道代码丢失,但我无法找到。

1 个答案:

答案 0 :(得分:1)

在对解决方案进行了大量调整之后:

  1. 创建被动身份验证中间件,在被要求时执行NTLM身份验证
  2. 在帐户控制器上创建自定义操作,将NTLM / Windows标识转换为应用程序标识,然后使用该标识登录。