开箱即用的 MVC3 应用程序在使用 Intranet 项目模板或 Internet 项目模板的 Forms 身份验证时允许 Windows 身份验证。我也有一个我想使用的网站。此外,我有一个现有的站点,它使用它自己的自定义类型的身份验证来对用户进行身份验证(没有授权或角色,只是标识)。除了来自旧系统的数据进行身份验证之外,我可能还需要使用每个功能。因此,我正在尝试确定一种方法来抽象我的身份验证并将其解耦。我想使用某种完全基于配置的依赖注入,因此我可以在两个不同的位置部署同一个站点,并通过仅更改配置来切换身份验证模型(Windows Auth/Forms Auth/Custom Auth)。
目前,我使用过的所有 ASP.NET 应用程序,包括 MVC3 模板项目,似乎都与所使用的身份验证类型紧密结合。
我是不是在这个问题上想得太远了?
这是可能的,还是这种紧密耦合的原因?
更新我遇到 的真正问题是我需要为某些用户使用的现有旧式身份验证与我需要为其他用户使用的表单身份验证之间。Windows 与 Forms 身份验证并不是真正的问题,因为登录表单没有用于其中。但请考虑自定义身份验证和表单身份验证。LogIn 表单与 FormsAuthentication 紧密耦合,更具体地说与 System.Web.Security 耦合。(即 Membership.ValidateUser、FormsAuthentication.SetAuthCookie 等...)。
我想将要使用的身份验证注入到我的 AccountController 中,而不是使用 FormsAuthentication 和 Membership。
到目前为止,我的问题是什么?