Exemplo n.º 1
0
        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);
                }
            }
        }
Exemplo n.º 2
0
        /// <summary>
        ///获取全部用户
        /// </summary>
        public async Task <IHttpActionResult> GetAllUsers()
        {
            var data = await this.UserInfoService
                       .GetAllUserAsync()
                       .ConfigureAwait(true);

            return(this.Ok(ResponseUtils.Converter(data)));
        }
Exemplo n.º 3
0
        /// <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)));
        }
Exemplo n.º 4
0
        /// <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)));
        }
Exemplo n.º 5
0
        /// <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.失败)));
            }
        }
Exemplo n.º 6
0
        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)));
        }
Exemplo n.º 7
0
 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;
     }
 }
Exemplo n.º 8
0
        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;
        }