我一直在尝试遵循如何配置Web Api以在Asp中使用承载令牌的示例。Net Identity 2.0,我遇到了一个小问题。遵循本教程http://www.asp.net/web-api/overview/security/individual-accounts-in-web-api,它指出我应该能够发布到http://{servername}/Token以获得承载令牌。当我这样做,我得到一个异常城堡温莎当它试图解析令牌作为一个控制器。
我想要完成的是使用使用罐装帐户控制器登录,然后检索令牌。我正在尝试同时使用cookie和承载令牌。
- 使用默认帐户控制器进行身份验证是正确的方法吗?
- 如果这不是正确的方法,我应该更密切地遵循教程,并让用户登录针对api控制器?
- 我需要为我的IoC配置做些什么来确保我的端点解析?
WebApi中的授权应该在MessageHandler中处理,而不是在控制器级别。
你应该创建一个MessageHandler负责验证OAuth Berarer令牌:该消息处理程序可以(应该)由你的IoC解析,然后在WebApi管道中配置。
public static void RegisterGlobalHandlers(HttpConfiguration config, IWindsorContainer container)
{
var authorizationMessageHandler = container.Resolve<AuthorizationMessageHandler>();
config.MessageHandlers.Add(authorizationMessageHandler);
}
DotNetOpenOAuth是一个很好的开始:看看mvc5示例/消息处理程序的实现。