public async Task <ActionResult> GetAuth([FromRoute] string type, [FromQuery] GetAuthRequest request) { var oAuthType = OAuthType.Parse(type); var host = ApiUtils.GetHost(Request); var redirectUrl = request.RedirectUrl; if (string.IsNullOrEmpty(redirectUrl)) { redirectUrl = ApiUtils.GetHomeUrl(); } var url = string.Empty; if (oAuthType == OAuthType.Weixin) { var settings = await _loginManager.GetWeixinSettingsAsync(); var client = new WeixinClient(settings.WeixinAppId, settings.WeixinAppSecret, host, redirectUrl); url = client.GetAuthorizationUrl(); } else if (oAuthType == OAuthType.Qq) { var settings = await _loginManager.GetQqSettingsAsync(); var client = new QqClient(settings.QqAppId, settings.QqAppKey, host, redirectUrl); url = client.GetAuthorizationUrl(); } else if (oAuthType == OAuthType.Weibo) { var settings = await _loginManager.GetWeiboSettingsAsync(); var client = new WeiboClient(settings.WeiboAppKey, settings.WeiboAppSecret, host, redirectUrl); url = client.GetAuthorizationUrl(); } if (!string.IsNullOrEmpty(url)) { return(Redirect(url)); } return(this.Error("类型不正确")); }
public async Task <ResultData> DeleteDataBaseInfo(List <DataBaseInfo> infos, string type) { //获取配置文件信息 ConfigInfo configInfo = _dbContext.Queryable <ConfigInfo>().Where(x => x.ConfigName == "PublicDataAdapters.json" && x.CategoryType == type).First(); if (configInfo == null) { return(ResultData.CreateResult("-1", "配置文件不存在", null)); } string localPath = ApiUtils.GetLocalPath(_dbContext, configInfo.Guid, out string errorMessage); if (!string.IsNullOrEmpty(errorMessage)) { return(ResultData.CreateResult("-1", errorMessage, null)); } List <PublicDataAdapters> datainfos; using (StreamReader reader = new StreamReader(localPath)) { string json = await reader.ReadToEndAsync(); datainfos = JsonConvert.DeserializeObject <List <PublicDataAdapters> >(json); } string[] dataAdapterAlias = infos.Select(x => x.AccountSetNumber).ToArray(); List <PublicDataAdapters> deleteData = datainfos.Where(x => dataAdapterAlias.Contains(x.DataAdapterAlias)).ToList(); foreach (var item in deleteData) { datainfos.Remove(item); } using (StreamWriter writer = new StreamWriter(localPath, false, Encoding.UTF8)) { await writer.WriteAsync(ApiUtils.ConvertJsonString(JsonConvert.SerializeObject(datainfos))); } return(ResultData.CreateSuccessResult()); }
public async Task <ResultData> UpdateUserPassword([FromBody] UpdateUserPasswordRequest request) { UserInfo userInfo = HttpContext.Session.GetData <UserInfo>("user"); if (userInfo.Password != ApiUtils.MD5Encode(request.OldPassword, "32")) { return(ResultData.CreateResult("-1", "旧密码不正确", null)); } userInfo.Password = ApiUtils.MD5Encode(request.NewPassword, "32"); if (await _dbContext.Updateable(userInfo).ExecuteCommandAsync() > 0) { HttpContext.Session.SetData("user", userInfo); return(ResultData.CreateSuccessResult()); } else { return(ResultData.CreateResult("-1", "更新失败", null)); } }
public async Task <List <DailyCommentModel> > GetComment(string id) { var comments = new List <DailyCommentModel>(); try { var longs = JsonConvert.DeserializeObject <Comments>( await WebClientUtils.Instance.GetAsync(ApiUtils.GetDailyCommentLong(id))); comments.AddRange(longs.comments); var shorts = JsonConvert.DeserializeObject <Comments>( await WebClientUtils.Instance.GetAsync(ApiUtils.GetDailyCommentShort(id))); comments.AddRange(shorts.comments); return(comments); } catch { return(comments); } }
private void btnLogin_Click(object sender, RoutedEventArgs e) { e.Handled = true; if (!vmLogin.IsValid) { MessageWindow.ShowMsg(MessageType.Warning, OperationDesc.Validate, vmLogin.Error); return; } if (!vmLogin.CheckVerifyCode()) { MessageWindow.ShowMsg(MessageType.Warning, OperationDesc.Validate, "验证码错误"); return; } //登录 var url = ApiUtils.GetApiUrl(ApiKeys.Login); var rst = HttpUtils.PostResult(url, new { username = vmLogin.logindata.username, pwd = vmLogin.logindata.pwd }); if (rst.code != ResultCode.Success) { MessageWindow.ShowMsg(MessageType.Warning, OperationDesc.Login, rst.msg); return; } //登录成功,记录token ClientContext.Token = rst.data.token; //获取用户信息 rst = HttpUtils.PostResult(ApiUtils.GetApiUrl(ApiKeys.GetUsr), new { pk = rst.data.usrid }, ClientContext.Token); if (rst.code != ResultCode.Success) { MessageWindow.ShowMsg(MessageType.Warning, OperationDesc.GetUsr, rst.msg); return; } var user = JsonConvert.DeserializeObject <User>(((JObject)rst.data).ToString()); ClientContext.CurrentUser = new UserVM(); OOMapper.Map(typeof(User), typeof(UserVM), user, ClientContext.CurrentUser); //记住我? RememberMe(); new MainWindow().Show(); this.Close(); }
internal PrivilegedFileStream(string path, FileAccess fileAccess, FileShare share, FileMode mode) { Access access = 0; if (fileAccess.HasFlag(FileAccess.Read)) { access |= Access.GenericRead; canRead = true; } if (fileAccess.HasFlag(FileAccess.Write)) { access |= Access.GenericWrite; canWrite = true; } fileHandle = CreateFile(path, access, share, IntPtr.Zero, mode, FileFlags.Normal | FileFlags.BackupSemantics, IntPtr.Zero); if (fileHandle.DangerousGetHandle() == INVALID_HANDLE_VALUE) { throw new IOException("Cannot open PrivilegedFileStream : " + ApiUtils.LastError()); } }
private void Page_Loaded(object sender, RoutedEventArgs e) { var rst = HttpUtils.GetResult(ApiUtils.GetApiUrl(PartyBuildingApiKeys.AreaGet, PartyBuildingApiKeys.Key_ApiProvider_Party)); if (rst.code != ResultCode.Success) { MessageWindow.ShowMsg(MessageType.Error, OperationDesc.Search, rst.msg); return; } if (rst.data != null && rst.data.infos != null) { allActPlaces = JsonConvert.DeserializeObject <IEnumerable <PartyActAreaModel> >(((JArray)rst.data.infos).ToString()); } InitTotal(); InitColChart(); radioTown.Command.Execute("town"); radioTown.IsChecked = true; }
private void GetDbFieldsAction(object parameter) { if (Tables.IsEmpty()) { MessageWindow.ShowMsg(MessageType.Error, OperationDesc.Cq_GetDbFields, "未定义查询表!"); return; } var url = ApiUtils.GetApiUrl(ApiKeys.Cq_FieldDbFields); var rst = HttpUtils.PostResult(url, Tables.Select(t => t.id), ClientContext.Token); if (rst.code != ResultCode.Success) { MessageWindow.ShowMsg(MessageType.Error, OperationDesc.Cq_GetDbFields, rst.msg); return; } if (rst.data != null && rst.data.rows != null) { var fields = JsonConvert.DeserializeObject <IEnumerable <FieldViewModel> >(((JArray)rst.data.rows).ToString()); base.Models = ((IEnumerable <CheckableModel>)fields).ToList();// } }
public async Task <ActionResult <StringResult> > Submit([FromBody] WeixinSettings request) { if (!await _authManager.HasAppPermissionsAsync(LoginManager.PermissionsLoginWeixin)) { return(Unauthorized()); } await _loginManager.SetWeixinSettingsAsync(request); var url = string.Empty; if (request.IsWeixin) { url = ApiUtils.GetAuthUrl(OAuthType.Weixin, ApiUtils.GetHomeUrl()); } return(new StringResult { Value = url }); }
private void SaveAction(object parameter) { if (!this.IsValid) { MessageWindow.ShowMsg(MessageType.Warning, OperationDesc.Validate, this.Error); return; } var url = ApiUtils.GetApiUrl(this.IsNew ? ApiKeys.AddUsr : ApiKeys.EditUsr); var rst = HttpUtils.PostResult(url, this.userdata, ClientContext.Token); if (rst.code != ResultCode.Success) { MessageWindow.ShowMsg(MessageType.Error, this.IsNew ? OperationDesc.Add : OperationDesc.Edit, rst.msg); return; } MessageWindow.ShowMsg(MessageType.Info, this.IsNew ? OperationDesc.Add : OperationDesc.Edit, MsgConst.Msg_Succeed); if (Window != null) { Window.DialogResult = true; Window.CloseCmd.Execute(null); } }
public async Task <ResultData> UpdateRedisApi() { using StreamReader bodyReader = new StreamReader(HttpContext.Request.Body, Encoding.UTF8); var data = await bodyReader.ReadToEndAsync(); JObject jObject = JObject.Parse(data); List <string> localPath = ApiUtils.GetLocalPathByFileName(_dbContext, "Redis.json", out string errorMessage); if (!string.IsNullOrEmpty(errorMessage)) { return(ResultData.CreateResult("-1", errorMessage, null)); } List <RedisInfo> info; using (StreamReader reader = new StreamReader(localPath[0])) { string json = await reader.ReadToEndAsync(); info = JsonConvert.DeserializeObject <List <RedisInfo> >(json); info[0].ServiceName = jObject["ServiceName"].ToString(); info[0].Servers[0].IP = jObject["IP"].ToString(); info[0].Servers[0].Port = jObject["Port"].ToString().ToInt32(); info[0].Address = jObject["Address"].ToString(); info[0].InstanceName = jObject["InstanceName"].ToString(); info[0].Password = jObject["Password"].ToString(); } foreach (var item in localPath) { using (StreamWriter writer = new StreamWriter(item, false, Encoding.UTF8)) { await writer.WriteAsync(ApiUtils.ConvertJsonString(JsonConvert.SerializeObject(info))); } } return(ResultData.CreateSuccessResult()); }
public async Task <ActionResult <GetResult> > Get() { if (!await _authManager.HasAppPermissionsAsync(LoginManager.PermissionsLoginWeibo)) { return(Unauthorized()); } var settings = await _loginManager.GetWeiboSettingsAsync(); var url = string.Empty; if (settings.IsWeibo) { url = ApiUtils.GetAuthUrl(OAuthType.Weibo, ApiUtils.GetHomeUrl()); } return(new GetResult { Settings = settings, Url = url }); }
internal void DownloadProfile() { var syncInformation = GetSyncInformation(); ApiUtils.GetSeBackupPrivilege(); ApiUtils.GetSeRestorePrivilege(); switch (syncInformation.Status) { case SyncInformation.SyncStatus.DoesNotExist: SaveSyncInformation(SyncInformation.SyncStatus.LoggedOn); break; case SyncInformation.SyncStatus.LoggedOn: case SyncInformation.SyncStatus.Uploading: if (syncInformation.LastHost == Environment.MachineName && ProfileExists(new SecurityIdentifier(syncInformation.SidInLastHost))) { SaveSyncInformation(SyncInformation.SyncStatus.LoggedOn); ApiUtils.SetOwner(localProfile.Path, username); ApiUtils.ResetUserRegistryPermission(username, localProfile.Path); break; } else { throw new UserNotLoggedOutException(syncInformation.LastHost); } case SyncInformation.SyncStatus.LoggedOut: SyncDirectory(remoteProfile, localProfile); ApiUtils.SetOwner(localProfile.Path, username); ApiUtils.ResetUserRegistryPermission(username, localProfile.Path); SaveSyncInformation(SyncInformation.SyncStatus.LoggedOn); break; default: throw new Exception("Unhandled status : " + syncInformation.Status.ToString()); } }
public async Task <DailysModelTotal> GetServiceDailys(string date = null) { try { var dailys = JsonConvert.DeserializeObject <DailysModelTotal>( await WebClientUtils.Instance.GetAsync( date == null ? ApiUtils.GetDailyLatest() : ApiUtils.GetDailyBefore(date))); foreach (var item in dailys.Stories) { try { var extra = JsonConvert.DeserializeObject <DailyExtraModel>( await WebClientUtils.Instance.GetAsync(ApiUtils.GetDailyExtra(item.Id.ToString()))); item.extra = extra; } catch { return(null); } } if (date == null) { await Task.Run(() => { SQLiteUtils.Instance.DeleteAllDailys(); SQLiteUtils.Instance.UpdateAllDailys(dailys.Stories); SQLiteUtils.Instance.DeleteAllTopDailys(); SQLiteUtils.Instance.UpdateAllTopDailys(dailys.Top_stories); }); } return(dailys); } catch { return(null); } }
protected override void DelAction(object param) { IEnumerable <CheckableModel> items = null; if (!base.BeforeDelete(out items)) { return; } var ids = items.Select(m => ((TableViewModel)m).id); var rst = HttpUtils.PostResult(ApiUtils.GetApiUrl(ApiKeys.Cq_TableDel), new { pks = ids.ToArray() }, ClientContext.Token); if (rst.code != ResultCode.Success) { MessageWindow.ShowMsg(MessageType.Error, OperationDesc.Delete, rst.msg); return; } MessageWindow.ShowMsg(MessageType.Info, OperationDesc.Delete, MsgConst.Msg_Succeed); base.SearchCmd.Execute(null); }
protected override void DelAction(object parameter) { IEnumerable <CheckableModel> items = null; if (!base.BeforeDelete(out items)) { return; } var ids = items.Select(m => ((PermDetailViewModel)m).permdata.per_id); var rst = HttpUtils.PostResult(ApiUtils.GetApiUrl(ApiKeys.MultiDeletePer), new { pks = ids.ToArray() }, ClientContext.Token); if (rst.code != ResultCode.Success) { MessageWindow.ShowMsg(MessageType.Error, OperationDesc.Delete, rst.msg); return; } MessageWindow.ShowMsg(MessageType.Info, OperationDesc.Delete, MsgConst.Msg_Succeed); //清除垃圾缓存 var funcCodes = items.Where(m => ((PermDetailViewModel)m).permdata.per_type == PermType.Func.ToString()) .Select(m => ((PermDetailViewModel)m).permdata.per_code); if (funcCodes != null && funcCodes.Count() > 0 && DataCacheUtils.AllFuncs.Count > 0) { foreach (var code in funcCodes) { if (DataCacheUtils.AllFuncs.ContainsKey(code)) { DataCacheUtils.AllFuncs.Remove(code); } } } base.SearchCmd.Execute(null); }
public IActionResult CreateToken([FromForm] UserOAuthRequest userAuthRequest) { if (userAuthRequest == null) { BadRequest(); } var api = Api.INSTANCE; using (var da = api.DAFactory.Get()) { var user = da.Users.GetByUsername(userAuthRequest.username); if (user == null || user.is_banned) { return(ApiResponse.Json(System.Net.HttpStatusCode.Unauthorized, new UserOAuthError("unauthorized_client", "user_credentials_invalid"))); } var ip = ApiUtils.GetIP(Request); var hashSettings = da.Users.GetAuthenticationSettings(user.user_id); var isPasswordCorrect = PasswordHasher.Verify(userAuthRequest.password, new PasswordHash { data = hashSettings.data, scheme = hashSettings.scheme_class }); //check if account is locked due to failed attempts var accLock = da.Users.GetRemainingAuth(user.user_id, ip); if (accLock != null && (accLock.active || accLock.count >= AuthLoginController.LockAttempts) && accLock.expire_time > Epoch.Now) { return(ApiResponse.Json(System.Net.HttpStatusCode.OK, new UserOAuthError("unauthorized_client", "account_locked"))); } //if the password is incorrect and check if user failed muli times and set a time out till next try. if (!isPasswordCorrect) { var durations = AuthLoginController.LockDuration; var failDelay = 60 * durations[Math.Min(durations.Length - 1, da.Users.FailedConsecutive(user.user_id, ip))]; if (accLock == null) { da.Users.NewFailedAuth(user.user_id, ip, (uint)failDelay); } else { var remaining = da.Users.FailedAuth(accLock.attempt_id, (uint)failDelay, AuthLoginController.LockAttempts); } return(ApiResponse.Json(System.Net.HttpStatusCode.OK, new UserOAuthError("unauthorized_client", "user_credentials_invalid"))); } //user passed the password check, and now creates the claim/token da.Users.SuccessfulAuth(user.user_id, ip); var claims = new List <string>(); //set the permission level in the claim switch (userAuthRequest.permission_level) { case 1: claims.Add("userReadPermissions"); break; case 2: claims.Add("userReadPermissions"); claims.Add("userWritePermissions"); break; case 3: claims.Add("userReadPermissions"); claims.Add("userWritePermissions"); claims.Add("userUpdatePermissions"); break; case 4: claims.Add("userReadPermissions"); claims.Add("userWritePermissions"); claims.Add("userUpdatePermissions"); claims.Add("userDeletePermissions"); break; default: break; } //set the user identity JWTUser identity = new JWTUser { UserID = user.user_id, UserName = user.username, Claims = claims }; //generate the the tokenen and send it in a JSON format as response var generatedToken = api.JWT.CreateToken(identity); return(ApiResponse.Json(System.Net.HttpStatusCode.OK, new UserOAuthSuccess { access_token = generatedToken.Token, expires_in = generatedToken.ExpiresIn })); } }
public async Task GetServiceDailys(string date = null) { try { var dailys = JsonConvert.DeserializeObject <DailysModel>(await OkHttpUtils.Instance.GetAsyn(date == null ? ApiUtils.GetDailyLatest() : ApiUtils.GetDailyBefore(date))); foreach (var item in dailys.Stories) { try { await Task.Run(async() => { var extra = JsonConvert.DeserializeObject <DailyExtraModel>(await OkHttpUtils.Instance.GetAsyn(ApiUtils.GetDailyExtra(item.Id.ToString()))); item.extra = extra; }); } catch { } } dailysView.GetServiceDailysSuccess(dailys.Date, dailys.Stories); if (date == null) { dailysView.GetServiceTopDailysSuccess(dailys.Top_stories); await SQLiteUtils.Instance().DeleteAllDailys(); await SQLiteUtils.Instance().UpdateAllDailys(dailys.Stories); await SQLiteUtils.Instance().DeleteAllTopDailys(); await SQLiteUtils.Instance().UpdateAllTopDailys(dailys.Top_stories); } } catch (Exception ex) { dailysView.GetServiceDailysFail(ex.Message); } }
// POST: api/OrderCancel public OrderCancelResponseModel Post([FromBody] OrderCancelRequestModel model, string customerId) { if (customerId == "CH1") { customerId = "CH"; } OrderCancelResponseModel response = new OrderCancelResponseModel(); using (DBContainer context = new DBContainer()) { QiMen_RequestLog log = new QiMen_RequestLog(); HttpContextBase ctx = (HttpContextBase)Request.Properties["MS_HttpContext"]; string body = ApiUtils.GetStreamAsString(ctx.Request.InputStream, new UTF8Encoding(false)); string ip = ctx.Request.UserHostAddress; log.Interface = "OrderCancel"; log.Url = Request.RequestUri.AbsoluteUri; log.Ip = ip; log.CustomerId = customerId; log.RequestBody = body; context.QiMen_RequestLog.Add(log); context.SaveChanges(); } using (SCVDBContainer dbContext = new SCVDBContainer()) { //DbSet<RECEIPT_HEADER> dbSet0 = dbContext.Set<RECEIPT_HEADER>(); //DbSet<SHIPMENT_HEADER> dbSet1 = dbContext.Set<SHIPMENT_HEADER>(); RECEIPT_HEADER rHeader = dbContext.RECEIPT_HEADER.FirstOrDefault(r => r.RECEIPT_ID == model.OrderCode && r.COMPANY == customerId); SHIPMENT_HEADER sHeader = dbContext.SHIPMENT_HEADER.FirstOrDefault(r => r.SHIPMENT_ID == model.OrderCode && r.COMPANY == customerId); if (sHeader != null) { if (sHeader.TRAILING_STS >= 750) { response.Flag = "failure"; response.Code = "-1"; response.Message = model.OrderCode + ":当前状态不允许取消"; return(response); } if (sHeader.PROCESS_TYPE.Equals("CANCEL", StringComparison.OrdinalIgnoreCase)) { response.Flag = "success"; response.Code = "0"; response.Message = model.OrderCode + ":该订单已经取消"; return(response); } else { sHeader.PROCESS_TYPE = "CANCEL"; sHeader.SHIPMENT_CATEGORY6 = "Cancel"; } } else if (rHeader != null) { //response.Flag = "failure"; //response.Code = "-1"; //response.Message = model.OrderCode + ":入库单取消,请联系商务"; //return response; if (rHeader.LEADING_STS == 100 && rHeader.TRAILING_STS == 100) { rHeader.LEADING_STS = 900; rHeader.TRAILING_STS = 900; rHeader.USER_DEF8 = "Cancel"; //rHeader.CLOSE_DATE = DateTime.Now.AddHours(-4); } else { response.Flag = "failure"; response.Code = "-1"; response.Message = model.OrderCode + "已收货不允许取消"; return(response); } } if (dbContext.SaveChanges() >= 0) { response.Flag = "success"; response.Code = "0"; response.Message = model.OrderCode + ":取消成功"; } else { response.Flag = "failure"; response.Code = "-1"; response.Message = model.OrderCode + ":取消失败"; } } return(response); }
public HttpResponseMessage Post(HttpRequestMessage request, [FromBody] RegistrationModel user) { var api = Api.INSTANCE; var ip = ApiUtils.GetIP(Request); user.username = user.username ?? ""; user.username = user.username.ToLowerInvariant(); user.email = user.email ?? ""; user.key = user.key ?? ""; string failReason = null; if (user.username.Length < 3) { failReason = "user_short"; } else if (user.username.Length > 24) { failReason = "user_long"; } else if (!USERNAME_VALIDATION.IsMatch(user.username ?? "")) { failReason = "user_invalid"; } else if ((user.password?.Length ?? 0) == 0) { failReason = "pass_required"; } if (failReason != null) { return(ApiResponse.Json(HttpStatusCode.OK, new RegistrationError() { error = "bad_request", error_description = failReason })); } bool isAdmin = false; if (!string.IsNullOrEmpty(api.Config.Regkey) && api.Config.Regkey != user.key) { return(ApiResponse.Json(HttpStatusCode.OK, new RegistrationError() { error = "key_wrong", error_description = failReason })); } var passhash = PasswordHasher.Hash(user.password); using (var da = api.DAFactory.Get()) { //has this ip been banned? var ban = da.Bans.GetByIP(ip); if (ban != null) { return(ApiResponse.Json(HttpStatusCode.OK, new RegistrationError() { error = "registration_failed", error_description = "ip_banned" })); } //has this user registered a new account too soon after their last? var now = Epoch.Now; var prev = da.Users.GetByRegisterIP(ip); if (now - (prev.FirstOrDefault()?.register_date ?? 0) < REGISTER_THROTTLE_SECS) { //cannot create a new account this soon. return(ApiResponse.Json(HttpStatusCode.OK, new RegistrationError() { error = "registration_failed", error_description = "registrations_too_frequent" })); } //TODO: is this ip banned? var userModel = new User(); userModel.username = user.username; userModel.email = user.email; userModel.is_admin = isAdmin; userModel.is_moderator = isAdmin; userModel.user_state = UserState.valid; userModel.register_date = now; userModel.is_banned = false; userModel.register_ip = ip; userModel.last_ip = ip; var authSettings = new UserAuthenticate(); authSettings.scheme_class = passhash.scheme; authSettings.data = passhash.data; try { var userId = da.Users.Create(userModel); authSettings.user_id = userId; da.Users.CreateAuth(authSettings); userModel = da.Users.GetById(userId); if (userModel == null) { throw new Exception("Unable to find user"); } return(ApiResponse.Json(HttpStatusCode.OK, userModel)); } catch (Exception) { return(ApiResponse.Json(HttpStatusCode.OK, new RegistrationError() { error = "registration_failed", error_description = "user_exists" })); } } }
public void WriteTo(ByteBuffer buffer) { buffer.PutInt(this.Id); ApiUtils.WriteShortString(buffer, this.Host); buffer.PutInt(this.Port); }
public async Task GetServiceArticle(int slug) { try { var article = JsonConvert.DeserializeObject <ArticleModel>(await OkHttpUtils.Instance.GetAsyn(ApiUtils.GetArticle(slug))); article.UpdateTime = DateTime.Now; await SQLiteUtils.Instance().UpdateArticle(article); articleView.GetServiceArticleSuccess(article); } catch (Exception ex) { articleView.GetArticleFail(ex.Message); } }
public static TEntity GetDetails(Int64 id, ParaCredentials creds) { var entity = ApiUtils.ApiGetEntity <TEntity>(creds, id); return(entity); }
public HttpResponseMessage CreateUser(RegistrationModel user) { var api = Api.INSTANCE; if (api.Config.SmtpEnabled) { return(ApiResponse.Json(HttpStatusCode.OK, new RegistrationError() { error = "registration_failed", error_description = "missing_confirmation_token" })); } var ip = ApiUtils.GetIP(Request); user.username = user.username ?? ""; user.username = user.username.ToLowerInvariant(); user.email = user.email ?? ""; user.key = user.key ?? ""; string failReason = null; if (user.username.Length < 3) { failReason = "user_short"; } else if (user.username.Length > 24) { failReason = "user_long"; } else if (!USERNAME_VALIDATION.IsMatch(user.username ?? "")) { failReason = "user_invalid"; } else if ((user.password?.Length ?? 0) == 0) { failReason = "pass_required"; } try { var addr = new System.Net.Mail.MailAddress(user.email); } catch { failReason = "email_invalid"; } if (failReason != null) { return(ApiResponse.Json(HttpStatusCode.OK, new RegistrationError() { error = "bad_request", error_description = failReason })); } if (!string.IsNullOrEmpty(api.Config.Regkey) && api.Config.Regkey != user.key) { return(ApiResponse.Json(HttpStatusCode.OK, new RegistrationError() { error = "key_wrong", error_description = failReason })); } using (var da = api.DAFactory.Get) { //has this ip been banned? var ban = da.Bans.GetByIP(ip); if (ban != null) { return(ApiResponse.Json(HttpStatusCode.OK, new RegistrationError() { error = "registration_failed", error_description = "ip_banned" })); } //has this user registered a new account too soon after their last? var now = Epoch.Now; var prev = da.Users.GetByRegisterIP(ip); if (now - (prev.FirstOrDefault()?.register_date ?? 0) < REGISTER_THROTTLE_SECS) { //cannot create a new account this soon. return(ApiResponse.Json(HttpStatusCode.OK, new RegistrationError() { error = "registration_failed", error_description = "registrations_too_frequent" })); } var userModel = api.CreateUser(user.username, user.email, user.password, ip); if (userModel == null) { return(ApiResponse.Json(HttpStatusCode.OK, new RegistrationError() { error = "registration_failed", error_description = "user_exists" })); } else { api.SendEmailConfirmationOKMail(user.username, user.email); return(ApiResponse.Json(HttpStatusCode.OK, userModel)); } } }
/// <summary> /// 初始化上下文 /// </summary> private void Init() { if (Config == null) { Config = ConfigurationManager.GetSection("AliApplyConfig") as AliApply; } Util = new ApiUtils(this); Auth = new AuthApi(this); Company = new CompanyApi(this); Product = new ProductApi(this); CustomClassify = new CustomClassifyApi(this); Album = new AlbumApi(this); Photo = new PhotoApi(this); Url=new UrlApi(this); Platform = new PlatformApi(this); Member=new MemberApi(this); Order=new OrderApi(this); Logistics=new LogisticsApi(this); CustomerRelations= new CustomerRelApi(this); Category=new CategoryApi(this); Search = new SearchApi(this); Timeout = 15; }
public IActionResult Get(string username, string password, string version, string clientid) { if (string.IsNullOrEmpty(username) || string.IsNullOrEmpty(password)) { return(ERROR_020()); } AuthTicket ticket = null; var api = Api.INSTANCE; using (var db = api.DAFactory.Get()) { var user = db.Users.GetByUsername(username); if (user == null) { return(ERROR_110()); } if (user.is_banned) { return(ERROR_150()); } if (api.Config.Maintainance && !(user.is_admin || user.is_moderator)) { return(ERROR_160()); } var ip = ApiUtils.GetIP(Request); var accLock = db.Users.GetRemainingAuth(user.user_id, ip); if (accLock != null && (accLock.active || accLock.count >= LockAttempts) && accLock.expire_time > Epoch.Now) { return(printError("INV-170", LOCK_MESSAGE + Epoch.HMSRemaining(accLock.expire_time))()); } var authSettings = db.Users.GetAuthenticationSettings(user.user_id); var isPasswordCorrect = PasswordHasher.Verify(password, new PasswordHash { data = authSettings.data, scheme = authSettings.scheme_class }); if (!isPasswordCorrect) { var failDelay = 60 * LockDuration[Math.Min(LockDuration.Length - 1, db.Users.FailedConsecutive(user.user_id, ip))]; if (accLock == null) { db.Users.NewFailedAuth(user.user_id, ip, (uint)failDelay); } else { var remaining = db.Users.FailedAuth(accLock.attempt_id, (uint)failDelay, LockAttempts); if (remaining == 0) { return(printError("INV-170", LOCK_MESSAGE + Epoch.HMSRemaining(Epoch.Now + (uint)failDelay))()); } } return(ERROR_110()); } var ban = db.Bans.GetByIP(ip); if (ban != null) { return(ERROR_110()); } db.Users.SuccessfulAuth(user.user_id, ip); db.Users.UpdateClientID(user.user_id, clientid ?? "0"); /** Make a ticket **/ ticket = new AuthTicket(); ticket.ticket_id = Guid.NewGuid().ToString().Replace("-", ""); ticket.user_id = user.user_id; ticket.date = Epoch.Now; ticket.ip = ip; db.AuthTickets.Create(ticket); db.Users.UpdateLastLogin(user.user_id, Epoch.Now); } var content = "Valid=TRUE\r\nTicket=" + ticket.ticket_id.ToString() + "\r\n"; return(ApiResponse.Plain(HttpStatusCode.OK, content)); }
// GET api/<controller> public HttpResponseMessage Get(string username, string password, string version, string clientid) { if (string.IsNullOrEmpty(username) || string.IsNullOrEmpty(password)) { return(ERROR_020()); } AuthTicket ticket = null; var api = Api.INSTANCE; using (var db = api.DAFactory.Get()) { var user = db.Users.GetByUsername(username); if (user == null) { return(ERROR_110()); } if (user.is_banned) { return(ERROR_150()); } if (api.Config.Maintainance && !(user.is_admin || user.is_moderator)) { return(ERROR_160()); } var authSettings = db.Users.GetAuthenticationSettings(user.user_id); var isPasswordCorrect = PasswordHasher.Verify(password, new PasswordHash { data = authSettings.data, scheme = authSettings.scheme_class }); if (!isPasswordCorrect) { return(ERROR_110()); } var ip = ApiUtils.GetIP(Request); var ban = db.Bans.GetByIP(ip); if (ban != null) { return(ERROR_110()); } db.Users.UpdateClientID(user.user_id, clientid ?? "0"); /** Make a ticket **/ ticket = new AuthTicket(); ticket.ticket_id = Guid.NewGuid().ToString().Replace("-", ""); ticket.user_id = user.user_id; ticket.date = Epoch.Now; ticket.ip = ip; db.AuthTickets.Create(ticket); } var content = "Valid=TRUE\r\nTicket=" + ticket.ticket_id.ToString() + "\r\n"; return(ApiResponse.Plain(HttpStatusCode.OK, content)); }
public static ParaEntityList <TEntity> GetList(ParaCredentials creds) { return(ApiUtils.ApiGetEntityList <TModule, TEntity>(creds, new TQuery())); }
public async Task GetServiceArticles(int offset) { try { var articles = JsonConvert.DeserializeObject <List <ArticleModel> >(await OkHttpUtils.Instance.GetAsyn(ApiUtils.GetRecommendationArticles(limit, offset))); await SQLiteUtils.Instance().UpdateArticles(articles); articlesView.GetArticlesSuccess(articles); } catch (Exception ex) { articlesView.GetArticlesFail(ex.Message); } }
// POST: api/SingleitemSynchronize public SingleitemSynchronizeResponseModel Post([FromBody] SingleitemSynchronizeRequestModel model, string customerId) { //测试相关 //if (customerId == "c1515046170643") //{ // customerId = "HPH"; //} //--------------------------------- if (customerId == "CH1") { customerId = "CH"; } SingleitemSynchronizeResponseModel response = new SingleitemSynchronizeResponseModel(); using (DBContainer context = new DBContainer()) { QiMen_RequestLog log = new QiMen_RequestLog(); HttpContextBase ctx = (HttpContextBase)Request.Properties["MS_HttpContext"]; string body = ApiUtils.GetStreamAsString(ctx.Request.InputStream, new UTF8Encoding(false)); string ip = ctx.Request.UserHostAddress; log.Interface = "SingleitemSynchronize"; log.Url = Request.RequestUri.AbsoluteUri; log.Ip = ip; log.CustomerId = customerId; log.RequestBody = body; context.QiMen_RequestLog.Add(log); context.SaveChanges(); } using (SCVDBContainer dbContext = new SCVDBContainer()) { DbSet <ITEM> dbSet = dbContext.Set <ITEM>(); DbSet <ITEM_UNIT_OF_MEASURE> dbSet1 = dbContext.Set <ITEM_UNIT_OF_MEASURE>(); Apps.Models.ITEM scvItem = null; if (model.ActionType == "update") { scvItem = dbSet.FirstOrDefault(i => i.ITEM1 == model.Item.ItemCode && i.COMPANY == customerId); if (scvItem != null) { scvItem.COMPANY = model.OwnerCode; scvItem.ITEM1 = model.Item.ItemCode; scvItem.ITEM_DESC = model.Item.ItemName; scvItem.STORAGE_TEMPLATE = "三层模板"; scvItem.ACTIVE = "Y"; scvItem.DATE_TIME_STAMP = DateTime.Now; scvItem.ATTRIBUTE_TRACK = "N"; scvItem.ITEM_SIZE = model.Item.SkuProperty; scvItem.ITEM_COLOR = model.Item.Color; scvItem.ITEM_STYLE = model.Item.GoodsCode; } } if (model.ActionType == "add") { scvItem = new Apps.Models.ITEM(); scvItem.COMPANY = model.OwnerCode; scvItem.ITEM1 = model.Item.ItemCode; scvItem.ITEM_DESC = model.Item.ItemName; scvItem.STORAGE_TEMPLATE = "三层模板"; scvItem.ACTIVE = "Y"; scvItem.DATE_TIME_STAMP = DateTime.Now; scvItem.ATTRIBUTE_TRACK = "N"; scvItem.ITEM_SIZE = model.Item.SkuProperty; scvItem.ITEM_COLOR = model.Item.Color; scvItem.ITEM_STYLE = model.Item.GoodsCode; var scvItemUnit = dbSet1.FirstOrDefault(u => u.ITEM == model.Item.ItemCode && u.COMPANY == customerId); if (scvItemUnit == null) { scvItemUnit = new Apps.Models.ITEM_UNIT_OF_MEASURE(); scvItemUnit.ITEM = model.Item.ItemCode; scvItemUnit.COMPANY = customerId; scvItemUnit.SEQUENCE = 1; scvItemUnit.QUANTITY_UM = "EA"; scvItemUnit.CONVERSION_QTY = 1; scvItemUnit.LENGTH = model.Item.Length; scvItemUnit.WIDTH = model.Item.Width; scvItemUnit.HEIGHT = model.Item.Height; scvItemUnit.DIMENSION_UM = "CM"; scvItemUnit.WEIGHT = model.Item.GrossWeight; scvItemUnit.WEIGHT_UM = "KG"; scvItemUnit.USER_STAMP = "Interface"; scvItemUnit.DATE_TIME_STAMP = DateTime.Now; scvItemUnit.TREAT_FULL_PCT = 100; scvItemUnit.TREAT_AS_LOOSE = "Y"; scvItemUnit.GROUP_DURING_CHECKIN = "Y"; scvItemUnit.USER_DEF7 = "0"; scvItemUnit.USER_DEF8 = "0"; dbSet1.Add(scvItemUnit); } dbSet.Add(scvItem); } if (dbContext.SaveChanges() >= 0) { response.Code = "0"; response.Flag = "success"; response.Message = "商品同步成功"; response.ItemId = scvItem.INTERNAL_ITEM_NUM.ToString(); } else { response.Code = "-1"; response.Flag = "failure"; response.Message = "商品同步失败,请重试"; } } return(response); }
private void btnAnalyze_Click(object sender, EventArgs e) { txtInfo.Text = "..."; if (!File.Exists(txtJarFile.Text)) { MessageBox.Show("请选择有效的Jar文件!"); return; } if (!Directory.Exists(txtDownloadPath.Text)) { MessageBox.Show("请选择有效的输出文件夹!"); return; } var he = new { masterHost = txtMasterHost.Text, masterUser = txtMasterUser.Text, masterPassword = txtMasterPassword.Text, masterPort = "22", appRoot = txtAppRoot.Text, hadoopBin = txtHadoopBin.Text }; string inputs_folder = txtInputs.Text; string[] files = Directory.GetFiles(inputs_folder, "*.*", SearchOption.AllDirectories); foreach (string file in files) { Console.WriteLine(file); string result = ApiUtils.uploadFile(Shared.API_ROOT, "hdfs", "upload", "post", file, new string[] { "appId", "userId", "hdfsPath" }, new string[] { "guest_app", "guest", ApiUtils.encodeBase64("hdfs://" + txtMasterHost.Text + ":9000" + file.Replace(inputs_folder, "").Replace("\\", "/")) }); } traceId = DateTime.Now.ToString("yyyyMMddHHmmss"); txtTraceId.Text = traceId; string localFile = txtJarFile.Text; string job_id = ApiUtils.uploadFile(Shared.API_ROOT, "guest", "submit", "post", localFile, new string[] { "jobName", "jarName", "jobDesc", "masterHost", "masterPassword", "masterPort", "masterUser", "hadoopBin", "appRoot", "mainClass", "args" }, new string[] { ApiUtils.encodeBase64(txtJobName.Text), ApiUtils.encodeBase64(Path.GetFileName(txtJarFile.Text)), ApiUtils.encodeBase64(txtJobDesc.Text), he.masterHost, he.masterPassword, he.masterPort, he.masterUser, he.hadoopBin, he.appRoot, txtMainClass.Text, ApiUtils.encodeBase64(txtArgs.Text + " @traceId=" + traceId) }); if (!string.IsNullOrEmpty(job_id)) { job_id = job_id.Replace("\"", ""); this.Current_Job_Id = job_id; txtJobId.Text = this.Current_Job_Id; if (cbAutomatic.Checked) { t = new System.Timers.Timer(1000); //设置时间间隔为5秒 t.Elapsed += new System.Timers.ElapsedEventHandler(DetectJobStatus); t.AutoReset = true; t.Enabled = true; t.Start(); } } else { MessageBox.Show("提交失败!"); } }