【发布时间】:2016-04-09 08:52:02
【问题描述】:
我有一个现有的 ASP.NET 4 项目,该项目由一个 Web api 和一个使用该 api 的单页应用程序组成。我已经完成了这里描述的 jwt 实现 http://bitoftech.net/2014/06/01/token-based-authentication-asp-net-web-api-2-owin-asp-net-identity/ ,但是令我非常失望的是,这并不容易移植到 ASP.NET 5 和 MVC 6 .. 我需要能够拥有自己的 SimpleAuthorizationServerProvider 类(或等效),因为我授权我的用户使用我的本地数据库。
在 SimpleauthorizationServerProvider 我是:
- 在我的本地用户数据库中查找上下文的用户名和密码,返回错误或继续
- 创建一个 var identity = new ClaimsIdentity(context.Options.AuthenticationType);
- 添加声明 - 例如。 identity.AddClaim(new Claim("sub", context.UserName));,还设置角色,例如。 identity.AddClaim(new Claim(ClaimTypes.Role, role));
- 最后,context.Validated(identity);
所以我可以使用 [Authorize] 甚至声明来保护我的 web api 路由。
我已经对此进行了很多谷歌搜索,但我似乎无法找到有关如何实现这一目标的足够信息。正如上面链接的文章的作者所说:
“ASP,NET 5 中的身份验证/授权与此版本确实不同,直到现在您无法颁发访问令牌,您可以直接使用它们,您需要中继身份提供者来完成此任务。所以如果不使用外部身份提供程序,则无法直接将此项目升级到最新的 ASP.NET 5。"
我想我希望帮助找出如何以正确的方式将该示例移植到 ASP.NET 5。
【问题讨论】: