Exemplo n.º 1
0
        public void SysAuth()
        {
            var key = Guid.NewGuid().ToString().Replace("-", string.Empty);

            var appInfo = new AppAuthorizeInfo
            {
                DeviceId  = "mmnsnd",
                IpAddress = "127.0.0.1"
            };

            var newSignData = appInfo.ToTicket("app_hlgu80900p0", "1.0", key, "ext");

            appInfo.FromTicket(newSignData);

            Assert.IsTrue(appInfo.CheckSign(key, 60, "ext").IsSuccess());
        }
Exemplo n.º 2
0
        public async Task Invoke(HttpContext context)
        {
            if (MemberShiper.AppAuthorize != null)
            {
                await _next.Invoke(context);

                return;
            }

            AppAuthorizeInfo sysInfo = null;

            //  这里是为了兼容App内部嵌套h5页面,使用App的授权信息
            string auticketStr = context.Request.Headers[GlobalKeysUtil.AuthorizeTicketName];

            if (!string.IsNullOrEmpty(auticketStr))
            {
                sysInfo = new AppAuthorizeInfo();
                sysInfo.FromTicket(auticketStr);
            }

            //  如果不是App访问,添加Web相关系统信息
            if (sysInfo == null)
            {
                sysInfo = new AppAuthorizeInfo
                {
                    Token    = context.Request.Cookies[GlobalKeysUtil.UserCookieName],
                    DeviceId = "WEB"
                };
                // todo 给 webbrowser 赋值
            }

            sysInfo.AppVersion = _appVersion;
            sysInfo.AppSource  = _appSource;

            if (string.IsNullOrEmpty(sysInfo.IpAddress))
            {
                sysInfo.IpAddress = GetIpAddress(context);
            }

            MemberShiper.SetAppAuthrizeInfo(sysInfo);
            await _next.Invoke(context);
        }
Exemplo n.º 3
0
        public void SysAuth()
        {
            var key = Guid.NewGuid().ToString().Replace("-", string.Empty);

            var appInfo = new AppAuthorizeInfo
            {
                AppClient  = AppClientType.Android,
                AppSource  = "mmmmm",
                AppVersion = "1.0.1",
                DeviceId   = "mmnsnd",
                Token      = "SeBCjJYRkujxEsgv9XupyHY7aMkdQuQcqGMu0wQMbhw=",
                IpAddress  = "127.0.0.1"
            };

            var newSignData = appInfo.ToTicket(key);

            appInfo.FromTicket(newSignData);

            var result = appInfo.CheckSign(key);
        }
Exemplo n.º 4
0
        public void OnAuthorization(AuthorizationFilterContext context)
        {
            AppAuthorizeInfo sysInfo = null;
            var checkSign            = !context.Filters.Any(filter => filter is AllowNoSignAttribute);

            if (checkSign)
            {
                string auticketStr = context.HttpContext.Request.Headers[GlobalKeysUtil.AuthorizeTicketName];
                if (string.IsNullOrEmpty(auticketStr))
                {
                    context.Result = new JsonResult(new ResultMo(ResultTypes.UnKnowSource, "未知应用来源"));
                    return;
                }

                sysInfo = new AppAuthorizeInfo();
                sysInfo.FromTicket(auticketStr);

                var secretKeyRes = ApiSourceKeyUtil.GetAppSecretKey(sysInfo.AppSource, sysInfo.TenantId);
                if (!secretKeyRes.IsSuccess())
                {
                    context.Result = new JsonResult(secretKeyRes);
                    return;
                }

                if (!sysInfo.CheckSign(secretKeyRes.data))
                {
                    context.Result = new JsonResult(new ResultMo(ResultTypes.ParaError, "非法应用签名!"));
                    return;
                }
            }

            if (sysInfo == null)
            {
                sysInfo = new AppAuthorizeInfo();
            }

            SetSystemAuthorizeInfo(sysInfo, context);
            MemberShiper.SetAppAuthrizeInfo(sysInfo);
        }