我已经使用Owin实现了一个简单的Web api,并在自托管的控制台应用程序中公开了它,但是我正在努力用grant_type="password"
保护它。调用令牌端点时,方法GrantResourceOwnerCredentials
不会被调用,并且http状态500返回给我的客户端。请注意,在覆盖MatchEndpoint
之后,我可以看到客户端请求令牌通过IsTokenEndpoint=true
正确进入服务。
我已经为客户端和服务准备了一个简单的解决方案。两者都采用控制台应用程序的形式。您可以在https://1drv.ms/u/s!Ag6__dEwvWa7g3GEFjDDl41KMIjg处获得Visual Studio解决方案。
解决方案
最后,在浪费了4个小时之后,我在调用访问令牌端点时偶然发现了此恒定的“内部服务器错误”的解决方案,原因是Web api服务中使用的Json.NET库太旧了。
这是我第一次遇到一个由于库不是最新的异常,我不完全理解为什么会这样。依赖其他库的库是否应该能够表达所需库的最低版本?