首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ASP.NET MVC 5和WebApi 2身份验证

ASP.NET MVC 5和WebApi 2身份验证
EN

Stack Overflow用户
提问于 2015-08-05 11:31:19
回答 2查看 6.5K关注 0票数 14

我最近构建了一个MVC5Web站点作为前端原型,并使用个人帐户进行身份验证。我现在需要建立一个WebApi2后端,将服务于这个网站以及一个iPhone应用程序,以及多个其他客户端。我对MVC site和WebApi的身份验证感到困惑。

我希望所有的用户管理都通过WebApi (它将使用令牌)来进行,这样它就与客户端无关,但是我不知道在没有我的身份类的情况下,网站端的Cookie身份验证将如何工作。看起来我会用MVC站点和WebApi来复制代码。我想对mvc站点使用cookie,对webapi使用oauth令牌。我需要创建另一个像IdentityProvider这样的项目来管理它吗?或者只使用MVC和WebApi项目就可以用一种干净的方式来实现它。谢谢!

编辑:我主要对如何管理用户身份感到困惑,因为用户既可以通过MVC站点登录,也可以通过WebApi请求登录。我需要能够以统一的方式生成UserIdentity和claims,而当我同时使用MVC个人帐户模板和WebApi2个人帐户身份验证模板时,我会感到困惑。我希望将用户、声明等存储在亚马逊网络服务托管的MongoDB实例中。

EN

回答 2

Stack Overflow用户

发布于 2015-12-16 01:04:37

这两个模板(mvc和api)都使用SigninManager和UserManager。标准的用户管理器实现基于SQL Server和Entity Framework。

如果您想在MongoDB上管理用户数据,最好的解决方案是使用您自己的UserStore来至少实现IUserStore和IUserRoleStore接口,或者使用this nuget包

对于UserManager,您可以使用标准实现。

你使用的Asp.net identity是开源的,你可以在Codeplex上看看(在GitHubMVC6上的那个)。

我认为处理你的场景的最好方法是:

  • 对于网站登录,对于标准web用户,在标准的mvc控制器上执行登录操作,然后让SignInManager来完成工作;您可以使用模板
  • 附带的标准登录方法进行api登录,实现简单的OAuthAuthorizationServerProvider并覆盖GrantResourceOwnerCredentials方法;this是一篇很好的文章,它向您展示了

的所有步骤

希望这能有所帮助!

票数 2
EN

Stack Overflow用户

发布于 2015-08-30 08:36:53

可以将会员资格提供商看作是独立的,独立于用于开发应用程序的技术。身份验证是身份验证,它不依赖于特定的技术。

http://www.asp.net/identity/overview/getting-started/aspnet-identity-recommended-resources

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31822990

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档