.net中的webapi使用oauth2.0认证,新建一个带身份认证的webapi项目,添加过滤器,代码如下:
using System; using System.Collections.Generic; using System.Collections.Specialized; using System.Linq; using System.Net; using System.Net.Http; using System.Security.Claims; using System.Security.Cryptography; using System.Text; using System.Threading; using System.Threading.Tasks; using System.Web; using System.Web.Http; using System.Web.Http.Filters; using System.Web.Security; namespace WebApplication2.App_Filter { public class AuthorizeFilter : AuthorizationFilterAttribute { public override void OnAuthorization(System.Web.Http.Controllers.HttpActionContext filterContext) { ApiController apiControl = (ApiController)filterContext.ControllerContext.Controller; if (!apiControl.User.Identity.IsAuthenticated) { Result r = new Result(); r.ErrorMessage = "请先登陆"; r.ResultCode = -1; filterContext.Response = filterContext.Request.CreateResponse<Result>(HttpStatusCode.OK, r, "application/json"); return; } } } }
其中Result代码如下:
public class Result { public Object Data { get; set; } public int ResultCode { get; set; } public string ErrorMessage { get; set; } }
在WebApiConfig中添加:
config.Filters.Add(new AuthorizeFilter());