【发布时间】:2014-01-28 12:48:07
【问题描述】:
我有两个通过两种方式进行身份验证的用户:
- 如果他们是内部用户,我们将通过 Windows 的活动目录进行身份验证
- 如果他们在网站上注册,他们会通过表单身份验证进行身份验证
在 MVC 3/4 中,我能够通过实现自定义成员资格提供程序和自定义角色提供程序来实现这一点。
在 MVC 5 中使用 OWIN 和 Identity 是否可以实现相同的操作?如何实现?
【问题讨论】:
标签: c# asp.net-mvc-5 owin
我有两个通过两种方式进行身份验证的用户:
在 MVC 3/4 中,我能够通过实现自定义成员资格提供程序和自定义角色提供程序来实现这一点。
在 MVC 5 中使用 OWIN 和 Identity 是否可以实现相同的操作?如何实现?
【问题讨论】:
标签: c# asp.net-mvc-5 owin
本质上,混合模式是一种带有 windows 身份验证入口点的表单身份验证,一旦用户通过它,就会进行正常的表单身份验证流程。
Enabling Windows Authentication in Katana
Katana 目前不提供用于 Windows 身份验证的 OWIN 中间件,因为该功能已在服务器中可用
因此,要使 Windows 身份验证正常工作,我必须依赖提供的主机之一,IIS 或 Self-host (System.Net.HttpListener )。
我制作了一个解决方案,使它看起来像一个外部提供商,将 windows 身份映射为外部登录。
【讨论】:
Identity 可以为外部用户使用数据库优先完成吗?
UserManager<ApplicationUser> 和UserStore<ApplicationUser>。
User 类如何像 ApplicationUser 那样从 IdentityUser 继承?
IdentityUser 只是一个基类,与 DB 表有明确的映射关系。对于 DB-first 实现,您只需实现 UserStore,它有很长的接口列表,但您可以从查看 Microsoft.AspNet.Identity.EntityFramework.dll 中的 EF 实现开始。