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()); }
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); }
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); }
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); }