在ASP.NET 5中实现基本身份验证

4
我正在使用ASP.NET Identity和MVC6应用程序中的Forms auth,并尝试为API端点实现Basic auth。我原以为会有预先构建的中间件来完成此任务,但是一直没有找到。我查看了Filters测试网站https://github.com/aspnet/Mvc/tree/dev/test/WebSites/FiltersWebSite,但似乎无法确定它在做什么/哪些部分很重要。我尝试使用手动执行授权过滤器中的基本身份验证的先前方法,但SuppressFormsAuthenticationRedirect似乎已经消失了,而CookieAuthenticationHandler不断重定向到登录页面。

回答“预构建中间件”的问题,“基本身份验证不符合[Katana团队]的安全要求”-https://katanaproject.codeplex.com/workitem/381 - Sam
我怀疑我需要对CookieAuthenticationMiddlewareCookieAuthenticationHandler进行子类化,并且重新复制所有隐藏在UseIdentity中的逻辑,或者重写UseIdentity助手以使Cookie auth被动,并手动重定向到所需的位置? - Sam
你是否针对特定的 Web 主机(例如 IIS)进行开发? - Malgaur
目前它部署在IIS中,但这有点违背了构建OWIN应用程序的目的,因为它绑定到了特定的主机。 - Sam
2个回答

2

感谢@Bart提出这个问题。我不能说我同意“让我们不实现HTTP规范的这一部分,因为有人可能会使用它错误”的态度,但我想他们必须做他们认为正确的事情。 - Sam
讨论底部提到的第三方选项:https://github.com/Kukkimonsuta/Odachi/blob/master/src/Odachi.Security.BasicAuthentication/BasicAuthenticationAppBuilderExtensions.cs - Sam

0

1
据我所知,IIS仅支持针对Windows帐户的基本身份验证 - 我需要使用ASP.NET Identity进行身份验证。无论如何,我看不到这解决了OWIN中间件内部进行的重定向问题? - Sam
是的,我已经看到了那个 - 在Bart的答案中看到我的评论。真正的问题不是基本身份验证(我目前通过过滤器使其工作),而是配置/修改CookieAuthenticationHandler以便它不会劫持请求/响应。 - Sam

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接