在ASP.NET Identity中添加新的grant_type?

时间:2016-03-31 14:03:00

标签: c# asp.net-web-api2 asp.net-identity

我在Web API 2项目中使用ASP.NET Identity。我目前使用以下示例使用用户名和密码进行身份验证并运行正常:

grant_type=password&username=alice%40example.com&password=Password1!

这很好。

现在,我的服务可以从移动应用程序调用,我想让用户可以使用密码登录。我已经向用户表添加了两个额外字段(密码和设备ID),并扩展了UserStore,以便能够根据此信息检索用户。

我的问题是如何让用户提供密码?我需要他们能够使用密码或密码登录,所以我想发送以下密码:

grant_type=passcode&username=alice%40example.com&passcode=1234&deviceid=abcdef

并且根据grant_type,我可以通过密码或密码查询用户存储。但是,这会引发错误(unsupported_grant_type)并快速搜索,看起来这些是预定义值,因此我无法添加新值?

我可以添加新的grant_type,还是必须坚持password并在帖子数据中添加一个字段,说明它是否有密码?

谢谢

1 个答案:

答案 0 :(得分:1)

添加另一个grant_type似乎不是一个主要问题。但有:合规。每个OAuth端点都有一组特定的允许grant_type。如果你添加另一个,你实际上绕过了标准,这将导致其他人实现它的问题。