我们的项目本来是用azure的auth认证,是用过程中发现登录速度太慢了,所以还是自己搞一个吧,没想到搞起来挺简单的,不是用一个专门的认证服务器哈,就是一个简单的工具类。
验证是否登录的类
/// <summary> /// 认证类继承 /// </summary> public class RequestAuthorizeAttribute : AuthorizeAttribute { public override void OnAuthorization(HttpActionContext actionContext) { // 是否不需要验证 或者 已经登录 if (SkipAuthorization(actionContext) || IsLogin(actionContext)) return; actionContext.Response = GetResponse(); } /// <summary> /// 返回信息接口 /// </summary> private HttpResponseMessage GetResponse() { var response = ServiceResponse<bool>.WarningResponse(401, CommonConst.Msg_NoLogin, false); return JsonHelper.ToHttpResponseMessage(response); } /// <summary> /// 判断是否匿名使用接口 /// </summary> private static bool SkipAuthorization(HttpActionContext actionContext) { if (!actionContext.ActionDescriptor.GetCustomAttributes<AllowAnonymousAttribute>().Any<AllowAnonymousAttribute>