我正在ASP.NET应用程序上实现OData端点,现在正在使用身份验证部分。我查看了http://odata.github.io/WebApi/05-01-basic-auth/的示例,以实现HTTP基本身份验证。但是,这个例子对我来说看起来很奇怪,尽管这篇文章给人的印象是这是你在RESTful API上实现通用自定义身份验证的方式。
e.g:
它在您应该实现授权的管道的舞台上实现身份验证。我的理解是,当调用OnAuthorization时,你应该已经拥有了主体集,剩下要做的就是检查主体是否有足够的访问权来执行请求的操作。
对IsAuthorized的调用有什么处理?这不应该是一种无副作用的方法吗?
所以我基本上想从那些更熟悉ASP.NET Web API的人那里确认这是否是一个正确的做事方式b)一种做事的hackish但是安全的方法或者c)危险的东西应该永远不会出现在生产代码中。
答案 0 :(得分:0)
您是对的,身份验证应该在单独的AuthenticationFilter
甚至HttpModule
中实施。您可以在此处找到示例:authentication filter,http module。