MVC 4.0 Web Api应用程序和混合身份验证

时间:2013-01-09 04:46:35

标签: asp.net-mvc-4 asp.net-web-api windows-authentication basic-authentication

我正在询问是否可以为我的WebApi控制器服务提供AD身份验证和基本身份验证。我的目的是让所有内部(公司)用户使用AD凭据(窗口)进行身份验证以进行无缝登录,但是移动和外部(非公司)用户的基本身份验证。我正在寻找有关使用两者的信息,但不一定是使用两者的最佳方法。我不感兴趣的是在AD中添加外部用户。

1 个答案:

答案 0 :(得分:2)

您可以采取的方法是创建自定义操作过滤器并在全局注册。

的内容
public class MixedAuthenticationAttribute : System.Web.Http.Filters.ActionFilterAttribute
{ 
    public override void OnActionExecuting(System.Web.Http.Controllers.HttpActionContext     actionContext)
    {
           //basic auth header check
           if (actionContext.Request.Headers.Authorization == null)
           {
                 //no auth header run AD authentication process.
           } else {
                 //basic auth authentication
           }

    }
}