我有一个现有的ASP.NET MVC 4.5应用程序,它通过.NET Membership对用户进行身份验证。我还想允许可选的基本HTTP身份验证代替成员资格,以供使用浏览器无法登录的DevOps类型脚本(缓存预热,测试等)使用。
理想情况下,用于HTTP身份验证的凭据与成员身份中的凭据相同,但它并不重要。唯一重要的是网站用户如果没有提供HTTP凭据,则不会提示他们。
答案 0 :(得分:1)
一种方法是覆盖OnAuthorize
的{{1}}方法,检查是否存在Authorization标头,如果找到,则提取并验证凭据,然后创建{{1 }} 用手。否则,调用AuthorizeAttribute
以便发生通常的.NET成员资格。
源:
IPrincipal