我最近将MVC 5网站构建为前端原型,并使用个人帐户进行身份验证。我现在需要构建一个WebApi2后端,它将为这个网站以及一个iPhone应用程序和其他多个客户端提供服务。我对使用MVC站点和WebApi进行身份验证感到困惑。
我希望通过WebApi(将使用令牌)进行所有用户管理,以便它与客户端无关,但我不知道如果没有我的Identity类,网站端的Cookie身份验证将如何工作。好像我将使用MVC站点和WebApi复制代码。我想为mvc网站使用cookie,为webapi使用oauth令牌。我是否需要创建另一个像IdentityProvider这样的项目来管理它?或者只使用MVC和WebApi项目来实现这一点。谢谢!
编辑:我对如何管理用户身份感到困惑,用户可以通过MVC站点和WebApi请求进行登录。我需要能够以统一的方式生成UserIdentity和声明,当我同时使用MVC个人帐户模板和WebApi2个人帐户身份验证模板时,我感到很困惑。我想在AWS托管的MongoDB实例中存储用户,声明等。答案 0 :(得分:2)
两个模板(mvc和api)都使用SigninManager和UserManager。标准用户管理器实现它基于SQL Server和实体框架。
如果您想在MongoDB上保留用户数据,那么最好的解决方案就是滚动您自己的UserStore以实现至少IUserStore和IUserRoleStore接口,或使用this nuget包
对于UserManager,您可以使用标准实现。
您正在使用它的开源代码的Asp.net标识,您可以查看codeplex(github上的那个用于mvc 6)。
我认为处理您的方案的最佳方法是:
希望这有帮助!
答案 1 :(得分:1)
将成员资格提供程序视为独立于开发应用程序的技术。身份验证是身份验证,不依赖于特定技术。
http://www.asp.net/identity/overview/getting-started/aspnet-identity-recommended-resources