奇怪的是,这个简单的解决方案还没有实现,或者我不能谷歌它; p)(我从最近5天开始尝试) . 我的要求:

  • 从URL上调用Angular App(withCredentials = true)以查看它是否是Windows用户( challenge NTLM ) . (我可以根据访问它的URL用户来配置它) . 如果它是一个有效的Windows用户,我在DB中找到它们,我将返回Bearer Token .

  • 如果以上呼叫返回未授权(401),我在AngularJS(1.6)客户端向用户显示登录表单 . 用户提供非Windows用户名和密码,当用户单击Login时,从角度服务转到另一个URL(用于获取Bearer Token - 标准OWIN内容) .

**无论如何,我将Bearer Token存储在我的客户端中,以进行任何进一步的API交互 .

  • 我没有使用ASP.NET身份,但我有自己的DAL来验证来自DB的用户 .

  • 我将拥有自己的自定义Authorize(继承)属性(仅检查Bearer Token) .

  • 我不希望用户在我的表单上输入Windows登录名并从Active Directory对他们进行身份验证 .

  • 我不希望Windows用户点击任何单独的按钮进行登录 . (他们应该只是无缝登录 - 来自浏览器的提示,要求他们登录Windows)

我已经看过几百个帖子,但我无处可以看到确切的需求 . 混合身份验证需要基于Cookie或单独的MVC实现 . (很多混乱)已经提到:

有人可以帮忙吗?

明天晚上我可能不得不放弃这个:-(