public static UserCloudModel GetClouds(User user, IUserVaultService _uservaultService //IUserCloudService _usercloudService, , ICloudService _cloudService, IVaultTemplateService _vaultTemplateService, IMFVaultService _vaultService, IMFilesVaultService _mfvaultService, string host, params string[] roleNames) { var clouds = _cloudService.GetCloudsByUserRoles(roleNames); var userId = user.Id; var appModel = new UserCloudModel(); var userVaults = _uservaultService.GetVaults(userId); foreach (var app in clouds) { var a = app; var appM = new CloudModel { App = a.ToDto() }; if (app.Id == CloudConstants.MyProjects) { var templates = new List <VaultTemplate>(); foreach (var t in _vaultTemplateService.GetTemplatesByCloud(app.Id)) { templates.Add(t); //a.Templates.Add(t); } if (templates.Count > 0) { var appVaults = userVaults.Where(c => templates.Any(d => c.TemplateId > 0 && c.TemplateId == d.Id)); appM.Vaults.AddRange(appVaults.Select(c => c.ToDtoWithoutTemplate())); } appM.Url = "/IntegratedManagement/Index"; } //else if (app.Id == CloudConstants.ProjManagements) //{ // //todo 指定路径 //} appModel.Apps.Add(appM); } var password = DBWorldCache.Get(userId.ToString()); var appVaultsC = _mfvaultService.GetVaultsByCloud(CloudConstants.SubContracts); var vv = new List <MFilesVault>(); foreach (var v in appVaultsC) { if (_vaultService.HasUser(user, password, v)) { vv.Add(v); } } if (vv.Count > 0) { var cc = _cloudService.GetCloudById(CloudConstants.SubContracts); var cM = new CloudModel { App = cc.ToDto() }; cM.Vaults.AddRange(vv.Select(c => c.ToDtoWithoutTemplate())); appModel.Apps.Add(cM); } return(appModel); }
public async Task <HttpResponseMessage> CloudApp(CloudAppFileModel model) { var userId = GetUserId(); var userName = GetUserName(); var pwd = DBWorldCache.Get(userId.ToString()); if (String.IsNullOrEmpty(pwd)) { return(new HttpResponseMessage { StatusCode = HttpStatusCode.BadRequest, Content = new StringContent("请从客户端登陆") }); } var cloudUrl = System.Configuration.ConfigurationManager.AppSettings["cloudappweb"]; using (var client = new HttpClient { BaseAddress = new Uri(cloudUrl) }) { var res = await client.GetStreamAsync("Common/launch.aspx?Domain=" + model.Domain + "&UserName="******"&Password="******"&ApplicationID=" + model.ApplicationID + "&AppName=" + model.AppName + "&ProjectName=" + model.ProjectName + "&FilePath=" + model.FilePath); return(new HttpResponseMessage { StatusCode = HttpStatusCode.OK, Content = new StreamContent(res) }); } }
protected string GetPassword() { if (!User.Identity.IsAuthenticated) { return(null); } return(DBWorldCache.Get(User.Identity.GetUserId <long>().ToString())); }
public UserPrivate UserPrivate() { var userName = User.Identity.GetUserName(); var userId = User.Identity.GetUserId <long>(); var pass = DBWorldCache.Get(userId.ToString()); return(new UserPrivate { UserName = userName, Password = pass }); }
private IEnumerable <VaultKey> GetCurrentVaultsEx() { var userId = AuthUtility.GetUserId(User); var userName = AuthUtility.GetUserName(User); var password = DBWorldCache.Get(userId.ToString()); var isAdUser = !String.IsNullOrEmpty(AuthUtility.GetUserDomain(User.Identity)); var server = _vaultServer.GetServer(); var vaultGuids = _workHourService.GetCurrentVaults(userName, password, isAdUser, server); return(vaultGuids); }
public ActionResult ChangePassword(ChangePasswordViewModel model) { bool hasPassword = true; ViewBag.HasLocalPassword = hasPassword; ViewBag.ReturnUrl = Url.Action("ChangePassword"); if (hasPassword) { if (ModelState.IsValid) { SimpleLog("in post changepassword"); SimpleLog("in post changepassword" + model.OldPassword); SimpleLog("in post changepassword" + model.NewPassword); SimpleLog("in post changepassword" + model.ConfirmPassword); var result = true; try { var userid = User.Identity.GetUserName(); SimpleLog("in post 11 name=" + userid); var pass = DBWorldCache.Get(User.Identity.GetUserId()); SimpleLog("in post 22 pass="******"in post 33" + vs.Ip + vs.Port); // var app = MFServerUtility.ConnectToServer(userid, model.OldPassword, vs.Ip, vs.Port); var app = MFServerUtility.ConnectToServer(vs); SimpleLog("in post 44"); app.LoginAccountOperations.UpdateLoginPassword(userid, model.NewPassword); SimpleLog("in post 55"); } catch (Exception ex) { SimpleLog(ex.Message); result = false; } if (result) { SimpleLog("in post success"); return(RedirectToAction("ChangePassword", new { Message = ManageMessageId.ChangePasswordSuccess })); } else { SimpleLog("in post error"); // AddErrors(result); return(RedirectToAction("ChangePassword", new { Message = ManageMessageId.Error })); } } } // If we got this far, something failed, redisplay form return(View(model)); }
public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context) { //var isUserId = false; //是否Password是UserId var headers = context.Request.Headers; var isDomainUser = true; if (headers.ContainsKey(DomainKey)) { var v = headers.GetValues(DomainKey).FirstOrDefault(); if (v != null) { var notDomain = String.Equals(false.ToString(), v, StringComparison.CurrentCultureIgnoreCase); if (notDomain) { isDomainUser = false; } } } else { var qs = context.Request.Query; if (qs != null) { var domain = qs.Any(c => c.Key.ToUpper() == "DOMAIN"); if (domain) { var v = qs.FirstOrDefault(c => c.Key.ToUpper() == "DOMAIN").Value.FirstOrDefault(); var notDomain = String.Equals(false.ToString(), v, StringComparison.CurrentCultureIgnoreCase); if (notDomain) { isDomainUser = false; } } } } var scope = context.OwinContext.GetAutofacLifetimeScope(); var userManager = scope.Resolve <UserManager <User, long> >(); var vaultService = scope.Resolve <IVaultServerService>(); var mfuserService = scope.Resolve <IMFUserService>(); var userService = scope.Resolve <IUserService>(); var res = await Task.Run(() => AuthUtility.Login(context.UserName, context.Password, isDomainUser, userManager , vaultService, mfuserService, userService)); if (!string.IsNullOrEmpty(res.Error)) { context.SetError(res.Error); return; } var user = res.User; var oAuthIdentity = await userManager.CreateIdentityAsync(user, OAuthDefaults.AuthenticationType); var cookiesIdentity = await userManager.CreateIdentityAsync(user, CookieAuthenticationDefaults.AuthenticationType); var data = new Dictionary <string, string> { { "userName", user.UserName }, { "disabled", user.Disabled.ToString() }, { "email", user.Email } }; var properties = CreateProperties(data); var ticket = new AuthenticationTicket(oAuthIdentity, properties); context.Validated(ticket); context.Request.Context.Authentication.SignIn(cookiesIdentity); user.LastIpAddress = context.Request.RemoteIpAddress; user.LastLoginDateUtc = DateTime.UtcNow; await userManager.UpdateAsync(user); //if (!isUserId) //{ DBWorldCache.Add(user.Id.ToString(), context.Password); //} }
public async Task <ActionResult> LogOn(LoginViewModel model, string returnUrl) { if (!ModelState.IsValid) { return(View(model)); } // 这不会计入到为执行帐户锁定而统计的登录失败次数中 // 若要在多次输入错误密码的情况下触发帐户锁定,请更改为 shouldLockout: true var userRes = await Task.Run(() => AuthUtility.Login(model.UsernameOrEmail, model.Password, model.IsDomainUser, _userManager, _vaultserverService, _mfuserService, _userService)); if (userRes.User != null) { var user = userRes.User; await _signInManager.SignInAsync(user, model.RememberMe, false); // Log.InfoFormat("登录账户:{0}, 公司:{1},部门:{2}", user.UserName, user.Company.Name, user.Department.Name); DBWorldCache.Add(user.Id.ToString(), model.Password); //check whether current user can connect contractor vault. try { //分包商菜单处理,使用缓存 var thevault = _vaultRepository.Table.FirstOrDefault(c => c.CloudId == 3); var app = MFServerUtility.ConnetToMfApp(user, model.Password, thevault.Server); var vault = app.LogInToVault(thevault.Guid); DBWorldCache.Add(user.Id.ToString() + "canManageContractor", "true"); // SimpleLog(user.FullName + "can view contractors,id=" + user.Id); } catch (Exception) { } try { var vs = _vaultserverService.GetServer(); var mfapp = MFServerUtility.ConnectToServer(vs); var vaults = mfapp.GetOnlineVaults(); foreach (VaultOnServer vaultOnServer in vaults) { // SimpleLog(vaultOnServer.Name + " task check!"); Vault vault; try { vault = vaultOnServer.LogIn(); } catch (Exception) { SimpleLog(string.Format("Info: vault:{0},{1}", vaultOnServer.Name, "no right")); continue; } try { var havetask = CheckTaskInOneVault(vault, user.Id); if (havetask) { DBWorldCache.Add(user.Id.ToString() + "havetask", havetask.ToString()); // SimpleLog(vault.Name + " havetask !"); break; } // SimpleLog(vault.Name + " have no task !"); } catch (Exception ex) { SimpleLog("havetask check error:" + ex.Message); } } foreach (VaultOnServer vaultOnServer in vaults) { // SimpleLog(vaultOnServer.Name + " notice check!"); Vault vault; try { vault = vaultOnServer.LogIn(); } catch (Exception) { SimpleLog(string.Format("Info: vault:{0},{1}", vaultOnServer.Name, "no right")); continue; } try { var havenotice = CheckNoticeInOneVault(vault, user.Id); if (havenotice) { DBWorldCache.Add(user.Id.ToString() + "havenotice", havenotice.ToString()); SimpleLog(vault.Name + " havenotice !"); break; } // SimpleLog(vault.Name + " have no notice !"); } catch (Exception ex) { SimpleLog("havenotice check error:" + ex.Message); } } } catch (Exception ex) { SimpleLog("check whether current user can connect contractor vault." + ex.Message); } return(RedirectToLocal(returnUrl)); } else { ModelState.AddModelError("", userRes.Error); } return(View(model)); }