【发布时间】:2014-11-16 06:47:30
【问题描述】:
我们有一个基于 MVC 和 SQL Membership 提供程序构建的现有 Web 应用程序,用于用户身份验证。该应用程序还包括用于创建/编辑用户、重置密码、激活帐户等的管理员管理屏幕……这是一个相当成熟的系统,已投入生产约 2.5 年。
我们现在有了一项新要求,即通过 API 从系统中公开一些数据,我们正在将 WebApi 视为一种候选技术。
我遇到的一个问题是关于身份验证的。我想利用我们应用程序中现有的用户/角色管理功能来创建和管理 API 帐户。但是,由于 WebAPI 的首选选项是使用 ASP.NET 身份(声明/持有者令牌等),所以我对最佳选项有点困惑。
以某种方式将现有的会员提供商用户/密码身份验证插入 Web api 身份验证机制是否可能或一个坏主意。在ApplicationOAuthProvider 中有一个方法,看起来我可以通过将IdentityUser user = await userManager.FindAsync(context.UserName, context.Password); 行替换为对MembershipProvider 的调用来进行操作。不过,这似乎非常笨拙。
非常感谢您的想法和选择。
【问题讨论】:
标签: c# asp.net asp.net-web-api asp.net-membership asp.net-identity