public void Configuration(IAppBuilder app)
        {
            HttpConfiguration config = new HttpConfiguration();

            //Autofac dependency injection config
            var container = AutofacConfig.RegisterContainer(config);

            app.UseAutofacMiddleware(container);
            app.UseAutofacWebApi(config);

            //Authorization config
            var userManager = new ApiUserManager(new UserLogic <User>(new FrassetMongoContext()));

            ConfigureOAuth(app, userManager);

            //Automapper config
            ApiMappingConfig.Register();

            //WebApi configuration (routing etc.)
            WebApiConfig.Register(config);

            //Cors middleware
            app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);

            //Webapi middleware
            app.UseWebApi(config);
        }
        public JsonResult <UserInfo> Get(string uuid)
        {
            JsonResult <UserInfo> result = new JsonResult <UserInfo>();

            result.code = 0;
            result.msg  = "OK";
            WeChatLogin loginList = logBll.GetWeChatLoginByUUID(uuid);

            if (loginList != null)
            {
                UserInfo userinfo = userinfoBll.GetUserInfoByOpenID(loginList.Openid);
                if (userinfo == null)
                {
                    userinfo            = new UserInfo();
                    userinfo.Headimgurl = loginList.Headimgurl;
                    userinfo.Nickname   = loginList.Nickname;
                    userinfo.Openid     = loginList.Openid;
                    userinfo.Sex        = (SexEnum)loginList.Sex.TryToInt(0);
                    //userinfo.UserName = loginList.Nickname;
                    userinfo.ID = userinfoBll.UpdateUserinfo(userinfo);
                }
                ApiUserManager userManager = new ApiUserManager(ActionContext);
                if (userinfo.UserName.IsNull())
                {
                    userinfo.UserName = userinfo.Nickname;
                }
                result.code      = 1;
                result.Result    = userinfo;
                result.ResultMsg = userManager.GetUserToken(userinfo);
            }
            return(result);
        }
        public async Task <HttpResponseMessage> Getfile(string id, string token)
        {
            HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK);

            if (id.IsNull() || token.IsNull())
            {
                response.StatusCode = HttpStatusCode.NotFound;
                return(response);
            }
            ApiUserManager usermanage = new ApiUserManager();
            UserInfo       user       = usermanage.GetUser(token);

            if (user == null)
            {
                response.StatusCode = HttpStatusCode.NotFound;
                return(response);
            }
            try
            {
                await Task.Run(() => {
                    string filename = string.Format("{0}.docx", id);
                    //string filePath = WordHelper.GetWordFilePath(filename);
                    //if (File.Exists(filePath))
                    //{
                    //    var stream = new FileStream(filePath, FileMode.Open);
                    //    response.Content = new StreamContent(stream);
                    //    response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
                    //    response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
                    //    {
                    //        FileName = filename
                    //    };
                    //    return;
                    //}
                    //StringBuilder sb = new StringBuilder();
                    //string title = "文件名称";
                    //Tuple<string, string> re = WordHelper.CreateWord(title, sb.ToString(), filename);
                    //if (re.Item1.IsNull())
                    //{
                    //    response.StatusCode = HttpStatusCode.NotFound;
                    //    return;
                    //}
                    //var streams = new FileStream(filePath, FileMode.Open);
                    //response.Content = new StreamContent(streams);
                    //response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
                    //response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
                    //{
                    //    FileName = filename
                    //};
                });
            } catch (Exception ex)
            {
                ClassLoger.Error("FileDownAPIController.GetPsychtest", ex);
            }
            return(response);
        }
        public override void OnActionExecuting(HttpActionContext actionContext)
        {
            #region 接口统计
            string key        = "APIRequestReport";
            string requestAPI = actionContext.Request.RequestUri.AbsolutePath;
            RedisBase.SortedSet_Zincrby(key, requestAPI, 1);
            string userHostAddress = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
            if (string.IsNullOrEmpty(userHostAddress))
            {
                if (System.Web.HttpContext.Current.Request.ServerVariables["HTTP_VIA"] != null)
                {
                    userHostAddress = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString().Split(',')[0].Trim();
                }
            }
            if (string.IsNullOrEmpty(userHostAddress))
            {
                userHostAddress = HttpContext.Current.Request.UserHostAddress;
            }
            Task.Run(() => {
            });
            #endregion

            JsonResult <string> result = new JsonResult <string>();
            if (CheckClient == ClientEnum.WindowsClient && !actionContext.Request.Headers.UserAgent.TryToString().Equals(SystemSet.WindowsClientUserAgent))
            {
                result.code = -21;
                result.msg  = "illegal client";
                //filterContext.HttpContext.Response.Status = HttpStatusCode.OK;
                actionContext.Response = actionContext.Request.CreateResponse(HttpStatusCode.OK, result);
                return;
            }
            if (CheckClient == ClientEnum.WebClient && !actionContext.Request.Headers.UserAgent.TryToString().Equals(SystemSet.WebClientUserAgent))
            {
                result.code = -21;
                result.msg  = "illegal client";
                //filterContext.HttpContext.Response.Status = HttpStatusCode.OK;
                actionContext.Response = actionContext.Request.CreateResponse(HttpStatusCode.OK, result);
                return;
            }
            if (IsLogin)
            {
                ApiUserManager userManager = new ApiUserManager(actionContext);
                if (!userManager.ExistsLogin())
                {
                    result.code            = -22;
                    result.msg             = "illegal user";
                    actionContext.Response = actionContext.Request.CreateResponse(HttpStatusCode.OK, result);
                    return;
                }
                //如果当前用户是普通管理员且需要验证权限
            }
            base.OnActionExecuting(actionContext);
        }
        public async Task <IHttpActionResult> Userinfo()
        {
            JsonResult <UserinfoViewModel> result = new JsonResult <UserinfoViewModel>();

            result.code = 1;
            result.msg  = "OK";
            await Task.Run(() => {
                ApiUserManager userManager = new ApiUserManager(ActionContext);
                UserinfoViewModel uv       = new UserinfoViewModel();
                uv.Age = "0";
                if (userManager.User.BirthDate != DateTime.MaxValue && userManager.User.BirthDate != DateTime.MinValue)
                {
                    uv.Age = (DateTime.Now.Year - userManager.User.BirthDate.Year).TryToString();
                }
                uv.BirthDate    = userManager.User.BirthDate.ToString("yyyy-MM-dd");
                uv.city         = userManager.User.city;
                uv.Email        = userManager.User.Email;
                uv.EnterpriseID = userManager.User.EnterpriseID;
                uv.GroupID      = userManager.User.GroupID;
                if (!uv.GroupID.IsNull())
                {
                    UserGroupBll groupbll = new UserGroupBll();
                    var group             = groupbll.GetByID(uv.GroupID);
                    if (group != null)
                    {
                        uv.GroupName = group.GroupName;
                    }
                }
                uv.Headimgurl     = userManager.User.Headimgurl;
                uv.ID             = userManager.User.ID;
                uv.IsAdmin        = userManager.User.IsAdmin;
                uv.IsHighestAdmin = userManager.User.IsHighestAdmin;
                uv.IsSystemAdmin  = userManager.User.IsSystemAdmin;
                uv.Name           = userManager.User.Name;
                uv.Nickname       = userManager.User.Nickname;
                uv.province       = userManager.User.province;
                uv.Residence      = userManager.User.Residence;
                uv.Sex            = ((int)userManager.User.Sex).TryToString();
                uv.Telephone      = userManager.User.Telephone;
                uv.UserName       = userManager.User.UserName;
                uv.Openid         = userManager.User.Openid;
                if (!userManager.User.IDNum.IsNull())
                {
                    uv.IDNum = $"{userManager.User.IDNum.Substring(0, 4)}**********{userManager.User.IDNum.Substring(14)}";
                }


                result.Result = uv;
            });

            return(Ok(result));
        }
        private void ConfigureOAuth(IAppBuilder app, ApiUserManager userManager)
        {
            OAuthAuthorizationServerOptions oauthServerOptions = new OAuthAuthorizationServerOptions()
            {
                AllowInsecureHttp         = true,
                TokenEndpointPath         = new PathString("/Account/Token"),
                AccessTokenExpireTimeSpan = TimeSpan.FromDays(1),
                Provider = new SimpleAuthorizationServerProvider(userManager)
            };

            app.UseOAuthAuthorizationServer(oauthServerOptions);
            app.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions());
        }
        public async Task <IHttpActionResult> IsPerfect()
        {
            JsonResult <bool> result = new JsonResult <bool>();

            result.code = 1;
            result.msg  = "OK";

            ApiUserManager userManager = new ApiUserManager(ActionContext);

            if (userManager.User.Name.IsNull() || userManager.User.BirthDate.IsNull() || userManager.User.Sex == Model.EnumModel.SexEnum.Nolimit)
            {
                result.Result = false;
            }
            else
            {
                result.Result = true;
            }
            return(Ok(result));
        }
        public async Task <IHttpActionResult> BindingWeChartCQ()
        {
            JsonResult <string> result = new JsonResult <string>();

            result.code = 0;
            result.msg  = "OK";
            await Task.Run(() => {
                string uuid      = Utils.GetWeChatUUID();
                string long_url  = WeChateSiteHelper.getCRContent(uuid);
                string cqContent = WeChatAccessTokenAPI.GetShortURL(long_url);
                if (string.IsNullOrEmpty(cqContent))
                {
                    cqContent = long_url;
                }
                string fileName = string.Format("{0}.png", uuid);
                string filePath = FileHelper.GetPicFilePath(fileName);
                if (QrCodeHelper.CreateImgCode(cqContent, filePath))
                {
                    result.code      = 1;
                    result.Result    = FileHelper.GetPicFileURL(fileName);
                    result.ResultMsg = uuid;

                    //图片记录进缓存,定期清理
                    string key = CacheKey.GetQrCodeKey(DateTime.Now);
                    RedisBase.List_Add <string>(key, filePath);
                    RedisBase.List_SetExpire(key, DateTime.Now.AddDays(2));

                    ApiUserManager userManager = new ApiUserManager(ActionContext);
                    string bindkey             = string.Format("bind_{0}", uuid);
                    RedisBase.Item_Set(bindkey, userManager.User);
                    RedisBase.ExpireEntryAt(bindkey, DateTime.Now.AddHours(1));
                }
            });

            return(Ok(result));
        }
Ejemplo n.º 9
0
 public UserController(ApiUserManager userManager)
 {
     UserManagerAuth = userManager;
 }
Ejemplo n.º 10
0
        //Constructors

        public AccountController(IUserStore <User, Guid> store)
        {
            this.userManager = new ApiUserManager(store);
        }
Ejemplo n.º 11
0
        //Constructors

        public SimpleAuthorizationServerProvider(ApiUserManager userManager)
        {
            this.userManager = userManager;
        }