public override void OnException(HttpActionExecutedContext actionExecutedContext) { if (actionExecutedContext.Exception != null) { MyLog.Error(actionExecutedContext.Exception); #if DEBUG var response = actionExecutedContext.Request.CreateResponse( HttpStatusCode.OK, ResponseUtils.Converter(actionExecutedContext.Exception.ToString(), ResponseState.务器错误)); #else var response = actionExecutedContext.Request.CreateResponse( HttpStatusCode.OK, ResponseUtils.Converter(new object(), ResponseState.务器错误)); #endif actionExecutedContext.Response = response; //todo:如果不是跨域请求,不要Access-Control-Allow-Credentials:true response.Headers.Add("Access-Control-Allow-Credentials", "true"); var referrer = actionExecutedContext.Request.Headers.Referrer; if (referrer != null) { var allow = referrer.Scheme + "://" + referrer.Authority; response.Headers.Add("Access-Control-Allow-Origin", allow); } } }
/// <summary> ///获取全部用户 /// </summary> public async Task <IHttpActionResult> GetAllUsers() { var data = await this.UserInfoService .GetAllUserAsync() .ConfigureAwait(true); return(this.Ok(ResponseUtils.Converter(data))); }
/// <summary> /// 获取用户权限(根据用户ID) /// </summary> /// <param name="userID">用户ID</param> public async Task <IHttpActionResult> GetPrivilege(int userID) { var result = await this.PrivilegeService .GetPrivilegeAsync(userID) .ConfigureAwait(true); return(Ok(ResponseUtils.Converter(result))); }
/// <summary> /// 获取按钮权限(根据角色ID) /// </summary> /// <param name="roleID">角色ID</param> public async Task <IHttpActionResult> GetButtonByRoleID(int roleID) { var result = await this.PrivilegeService .GetButtonByRoleIDAsync(roleID) .ConfigureAwait(true); return(Ok(ResponseUtils.Converter(result))); }
/// <summary> /// 获取菜单权限(当前登录用户) /// </summary> public IHttpActionResult GetMenus() { var httpContext = Utils.CurrentHttpContextBase(this.Request); var privilege = httpContext.Items["MVCLearn_Privilege"] as PrivilegeDTO; if (privilege != null) { return(Ok(ResponseUtils.Converter(privilege.Menus))); } else { return(Ok(ResponseUtils.Converter(new object(), ResponseState.失败))); } }
public async Task <IHttpActionResult> Login(LoginDTO login) { var user = await this.AccountService .LoginAsync(login.UserName, login.Password) .ConfigureAwait(true); if (user == null) { return(Ok(ResponseUtils.Converter(new object(), ResponseState.失败))); } RedisAuthorize authorize = await this.PrivilegeService .UpdateAuthorizeAsync(user) .ConfigureAwait(true); return(Ok(ResponseUtils.Converter(authorize.AuthorizeId))); }
public void OnException(ExceptionContext filterContext) { if (!filterContext.ExceptionHandled) { MyLog.Error(filterContext.Exception); if (filterContext.RequestContext.HttpContext.Request.IsAjaxRequest()) { filterContext.Result = new JsonNetResult() { Data = ResponseUtils.Converter(new object(), ResponseState.务器错误), JsonRequestBehavior = JsonRequestBehavior.AllowGet }; } else { filterContext.Result = new RedirectResult("/html/500.html"); // 返回错误页 } filterContext.ExceptionHandled = true; } }
protected override void HandleUnauthorizedRequest(HttpActionContext actionContext) { var httpContext = Utils.CurrentHttpContextBase(actionContext.Request); // HttpContextBase var type = (AuthorizeState)httpContext.Items["MVCLearn_AuthorizeState"]; var responseState = type == AuthorizeState.没有权限 ? ResponseState.权限不足 : ResponseState.未登录; var response = actionContext.Request.CreateResponse( HttpStatusCode.OK, ResponseUtils.Converter(new object(), responseState)); //todo:如果不是跨域请求,不要Access-Control-Allow-Credentials:true response.Headers.Add("Access-Control-Allow-Credentials", "true"); var referrer = actionContext.Request.Headers.Referrer; if (referrer != null) { var allow = referrer.Scheme + "://" + referrer.Authority; response.Headers.Add("Access-Control-Allow-Origin", allow); } actionContext.Response = response; }