/// <summary> /// 获取cookie信息 /// </summary> /// <param name="cookie"></param> /// <returns></returns> public static UserCookie GetHttpCookie(HttpCookie cookie) { UserCookie user = null; if (cookie != null) { user = new UserCookie(); user.access_token = HttpUtility.UrlDecode(cookie["access_token"]); if (int.TryParse(cookie["expires_in"], out int expires_in)) { user.expires_in = expires_in; } user.nickname = HttpUtility.UrlDecode(cookie["nickname"]); user.avatar = HttpUtility.UrlDecode(cookie["avatar"]); if (int.TryParse(cookie["id"], out int id)) { user.id = id; } user.packageid = cookie["packageid"]; user.overtdt = cookie["overtdt"]; user.panonum = cookie["panonum"]; } return(user); }
/// <summary> /// 后台首页 /// </summary> /// <returns></returns> public ActionResult Index() { using (DataWallContext db = new DataWallContext()) { var Cookies = SecurityHelper.DecryptDES(CookieHelper.GetCookieValue("User"), db.SysProgramInfos.AsNoTracking().FirstOrDefault().CookieSecretKey); if (Cookies != "") { UserCookie user = JsonConvert.DeserializeObject <UserCookie>(Cookies); ViewBag.UserName = user.UserName; ViewBag.RoleName = user.RoleName; } else { return(RedirectToAction("Login")); } SysProgramInfo sysProgramInfo = db.SysProgramInfos.AsNoTracking().FirstOrDefault(); ViewBag.Title = "数据墙后台管理系统" + sysProgramInfo.ProgramVersion; //获取菜单 List <SysMenu> menuList = db.SysMenus.Where(m => m.IsEnable == 0 & m.DelState == 0).AsNoTracking().ToList(); ViewData["datalist"] = menuList; //模块菜单 List <SysModule> ModuleMenu = db.SysModules.Where(m => m.IsEnable == 0 & m.DelState == 0 & m.IsAddToMenu == 0).AsNoTracking().ToList(); ViewData["modulelist"] = ModuleMenu; return(View(sysProgramInfo)); } }
public ActionResult LogOff() { WebSecurity.Logout(); UserCookie.CreateInstance(null, HttpContext); return(Redirect("/")); }
/// <summary> /// Create object follow singleton pattern /// </summary> /// <returns></returns> private static UserCookie currentSession() { if (instance == null) { instance = new UserCookie(); } return(instance); }
public ActionResult Logout() { FormsAuthentication.SignOut(); UserCookie userCookie = UserCookie.Load <UserCookie>(); userCookie.Clear(); return(RedirectToAction("Index", "Account", new { area = "Manage" })); }
/// <summary> /// 重置用户登录cookie /// </summary> /// <param name="ctx"></param> /// <param name="userCookie"></param> public void ResetUserCookie(HttpContextBase ctx, UserCookie userCookie) { //清除用户登录cookie ClearUserCookie(ctx); //初始化当前用户 InitUserCookie(ctx, userCookie); }
/// <summary> /// 用户登出 /// </summary> /// <returns></returns> public ActionResult Logout() { FormsAuthentication.SignOut(); UserCookie userCookie = UserCookie.Load <UserCookie>(); userCookie.Clear(); return(RedirectToAction("Index", "Home")); }
/// <summary> /// 获取用户名 /// </summary> /// <returns></returns> public string GetUserName() { using (DataWallContext db = new DataWallContext()) { //获取当前登陆用户 var Cookies = SecurityHelper.DecryptDES(CookieHelper.GetCookieValue("User"), db.SysProgramInfos.AsNoTracking().FirstOrDefault().CookieSecretKey); UserCookie user = JsonConvert.DeserializeObject <UserCookie>(Cookies); return(user.UserName); } }
/// <summary> /// 获取当前用户可管理场馆 /// </summary> /// <returns></returns> public List <SysLibrary> GetLibraryList() { using (DataWallContext db = new DataWallContext()) { var Cookies = SecurityHelper.DecryptDES(CookieHelper.GetCookieValue("User"), db.SysProgramInfos.AsNoTracking().FirstOrDefault().CookieSecretKey); UserCookie user = JsonConvert.DeserializeObject <UserCookie>(Cookies); var Libids = db.SysLibraryUsers.Where(u => u.SysUserID == user.UserId).Select(u => u.SysLibraryId).ToList(); return(db.SysLibrarys.Where(lib => Libids.Contains(lib.ID) & lib.DelState == 0 & lib.IsEnable == 0).AsNoTracking().ToList()); } }
/// <summary> /// 授权处理 /// </summary> /// <param name="ctx"></param> public void OnPostAuthenticateRequest(HttpContext ctx) { var context = new HttpContextWrapper(ctx); var identity = context.User.Identity; //已经登录,并已经授权完成 if (identity.IsAuthenticated && identity.AuthenticationType == "Forms") { var user = new UserCookie(identity as FormsIdentity); context.User = user; } }
public UserCookie GetCookie() { UserCookie u = new UserCookie(); if (Request.Cookies.AllKeys.Contains("UserId")) { HttpCookie cookie = Request.Cookies["UserId"]; u.Value1 = cookie.Value; u.Expiry = cookie.Expires; } return(u); }
/// <summary> /// 验证用户状态,用户接口请求验证 /// </summary> /// <param name="cookie"></param> /// <returns></returns> public bool VerifyUser(UserCookie cookie) { if (string.IsNullOrWhiteSpace(cookie.AccountAppId) || string.IsNullOrWhiteSpace(cookie.AccountOpenId)) { return(false); } var appUserAccount = ProviderGateway.AppUserAccountProvider.GetByOpenId(cookie.AccountAppId, cookie.AccountOpenId); if (appUserAccount == null || appUserAccount.State != AppUserAccountState.Activated) { return(false); } return(true); }
public async Task <ActionResult> GetLoad() { Load load = new Load(); var AutosVehiclesController = new AutosVehiclesController(); var CarMakesController = new CarMakesController(); load.AutosVehicleF = (IEnumerable <AutosVehicle>) await AutosVehiclesController.GetFeaturedAutos(); load.CarMake = (IEnumerable <CarMake>) await CarMakesController.GetCarMake(); UserCookie uc = GetCookie(); ViewBag.Value = uc.Value1; ViewBag.Expiry = uc.Expiry; return(View("Featured_cars", load)); }
public ActionResult Login(LoginModel model, string returnUrl) { if (ModelState.IsValid && WebSecurity.Login(model.UserName, model.Password, persistCookie: model.RememberMe)) { int userId = WebSecurity.GetUserId(model.UserName); ContentManagementDb db = new ContentManagementDb(); UserProfile user = db.Users.FirstOrDefault(u => u.UserId == userId); user.LastLogin = DateTime.Now; db.SaveChangesAsync(); UserCookie.CreateInstance(user, HttpContext); return(RedirectToLocal(returnUrl)); } // If we got this far, something failed, redisplay form ModelState.AddModelError("", "The user name or password provided is incorrect."); return(View(model)); }
private void PassCurrentUser() { string currentUserName = string.Empty; bool isAuthenticated = this.Request.RequestContext.HttpContext.User.Identity.IsAuthenticated; if (isAuthenticated == true) { currentUserName = this.Request.RequestContext.HttpContext.User.Identity.Name; } if (string.IsNullOrWhiteSpace(currentUserName) == true) { UserCookie userCookie = UserCookie.Load <UserCookie>(); currentUserName = userCookie.UserName; } BusinessUser currentUser = BusinessUserBLL.Get(currentUserName); this.ViewBag.CurrentUser = currentUser; }
/// <summary> /// 获取写入Cookie的信息 /// </summary> /// <param name="user"></param> /// <returns></returns> public static HttpCookie GetWriteCookie(UserCookie user) { var cookie = new HttpCookie(WebConfigs.CookieName); cookie.Domain = WebConfigs.CookieDomain; cookie.Values["access_token"] = HttpUtility.UrlEncode(user.access_token); cookie.Values["expires_in"] = HttpUtility.UrlEncode(user.expires_in + ""); cookie.Values["nickname"] = HttpUtility.UrlEncode(user.nickname, Encoding.GetEncoding("UTF-8")); cookie.Values["avatar"] = HttpUtility.UrlEncode(user.avatar, Encoding.GetEncoding("UTF-8")); cookie.Values["id"] = HttpUtility.UrlEncode(user.id + ""); cookie.Values["isads"] = HttpUtility.UrlEncode(user.isads); cookie.Values["isadz"] = HttpUtility.UrlEncode(user.isadz); cookie.Values["packageid"] = HttpUtility.UrlEncode(user.packageid); cookie.Values["overtdt"] = HttpUtility.UrlEncode(user.overtdt); cookie.Values["packagename"] = HttpUtility.UrlEncode(user.packagename); cookie.Values["panonum"] = user.panonum; cookie.Values["integral"] = user.integral; cookie.Expires = DateTime.Now.AddHours(2); return(cookie); }
/// <summary> /// 设置用户登录cookie /// </summary> /// <param name="ctx"></param> /// <param name="userCookie"></param> public void InitUserCookie(HttpContextBase ctx, UserCookie userCookie) { //初始化当前用户 ctx.User = userCookie; var identity = userCookie.Identity as FormsIdentity; FormsAuthenticationTicket ticket = identity.Ticket; string encTicket = FormsAuthentication.Encrypt(ticket); var uc = new HttpCookie(FormsAuthentication.FormsCookieName, encTicket) { Path = ticket.CookiePath, HttpOnly = true, //Domain = FormsAuthentication.CookieDomain }; //保存cookie ctx.Response.Cookies.Add(uc); }
/// <summary> /// 数据检查 /// </summary> /// <param name="id"></param> /// <param name="name"></param> /// <returns></returns> public bool CheckLibraryId(string id, string name) { using (DataWallContext db = new DataWallContext()) { var Cookies = SecurityHelper.DecryptDES(CookieHelper.GetCookieValue("User"), db.SysProgramInfos.AsNoTracking().FirstOrDefault().CookieSecretKey); UserCookie user = new UserCookie(); if (Cookies != "") { user = JsonConvert.DeserializeObject <UserCookie>(Cookies); } var LibraryIdList = db.SysLibraryUsers.Where(slu => slu.SysUserID == user.UserId).Select(slu => new { slu.SysLibraryId }).AsNoTracking().ToList(); List <String> idlist = new List <string>(); foreach (var item in LibraryIdList) { idlist.Add(item.SysLibraryId.ToString()); } if (!idlist.Contains(id)) { return(false); } List <String> namelist = new List <string>(); foreach (var item in LibraryIdList) { var LibraryList = db.SysLibrarys.Where(sl => sl.ID == item.SysLibraryId).Select(sl => new { sl.LibraryName }).AsNoTracking().ToList(); foreach (var items in LibraryList) { namelist.Add(items.LibraryName.ToString()); } } if (!namelist.Contains(name)) { return(false); } return(true); } }
/// <summary> /// 在请求授权时调用 /// </summary> /// <param name="httpContext"></param> /// <returns></returns> protected override bool AuthorizeCore(HttpContextBase httpContext) { using (DataWallContext db = new DataWallContext()) { if (httpContext == null) { throw new ArgumentNullException("HttpContext"); } if (AuthRoles == null || AuthRoles.Length == 0) { return(false); } #region 确定当前用户角色是否属于指定的角色 //获取当前登陆用户所在角色 var Cookies = SecurityHelper.DecryptDES(CookieHelper.GetCookieValue("User"), db.SysProgramInfos.AsNoTracking().FirstOrDefault().CookieSecretKey); UserCookie user = JsonConvert.DeserializeObject <UserCookie>(Cookies); if (user != null) { //验证用户是否被禁用 if (db.SysUsers.FirstOrDefault(u => u.UserName == user.UserName & u.IsEnable == 0 & u.DelState == 0) != null) { //验证是否属于对应角色 for (int i = 0; i < AuthRoles.Length; i++) { if (user.RoleName.Contains(AuthRoles[i])) { return(true); } } } } #endregion return(false); } }
private static void Initialize() { try { if (HttpContext.Current != null) { // check user in cookie if (UserId == 0 || string.IsNullOrEmpty(UserName)) { UserId = UserCookie.IsValidEncryptedID() ? Convert.ToInt64(UserCookie.ToDecrypt()) : 0; // intialize user value dbPetSupplies_8517 DB = new Data.dbPetSupplies_8517(); User user = DB.Users.Where(x => x.UserID == UserId).FirstOrDefault(); if (user != null) { UserId = user.UserID; UserName = user.Ownername ?? ""; IsAdmin = user.IsAdmin; } } } } catch { } }
/// <summary> /// Creates the authentication ticket. /// </summary> /// <param name="name">The name.</param> /// <param name="user">The user.</param> /// <returns>FormsAuthenticationTicket.</returns> public static FormsAuthenticationTicket CreateAuthenticationTicket(string name, UserCookie user) { var ticket = new FormsAuthenticationTicket( 1, name, DateTime.Now, DateTime.Now.Add(FormsAuthentication.Timeout), false, user.ToJson()); return(ticket); }
/// <summary> /// 校验用户身份,并返回绑定Url /// </summary> /// <param name="appAccountId"></param> /// <param name="redirectUrl"></param> /// <param name="type"></param> /// <param name="cookie"></param> /// <returns> /// null:用户身份存在且状态正常 /// 非null:返回绑定Url,直接跳转 /// </returns> public string GetIdentityUrl(string appAccountId, string redirectUrl, int type, UserCookie cookie, CallbackContentState state = CallbackContentState.Bind) { ArgumentHelper.AssertIsTrue(!string.IsNullOrWhiteSpace(redirectUrl), "redirectUrl is null or empty"); AppAccountInfo appAccountPublic; AppAccountInfo appAccountPrivate = null; var tenantId = 0; AppUserAccountInfo appUserAccountMaster; AppUserAccountInfo appUserAccount; string appAccountPublicId; //根据类型初始化信息 if (string.IsNullOrWhiteSpace(appAccountId)) { //公共账户方式 appAccountPublic = ProviderGateway.AppAccountProvider.GetPublicByType(type); appUserAccountMaster = ProviderGateway.AppUserAccountProvider.GetByOpenId(appAccountPublic.AppId, cookie.OpenIds[appAccountPublic.AppId]); appAccountPublicId = appAccountPublic.AppAccountId; if (appUserAccountMaster != null && appUserAccountMaster.State == AppUserAccountState.Activated) { cookie.AccountAppId = appAccountPublic.AppId; cookie.AccountOpenId = cookie.OpenIds[appAccountPublic.AppId]; return(null); } } else { //私有账户方式 appAccountPrivate = ProviderGateway.AppAccountProvider.Get(appAccountId); tenantId = appAccountPrivate.TenantId; switch (appAccountPrivate.Type) { case 11: case 12: appAccountPublic = ProviderGateway.AppAccountProvider.GetPublicByType(appAccountPrivate.Type); appUserAccountMaster = ProviderGateway.AppUserAccountProvider.GetByOpenId(appAccountPublic.AppId, cookie.OpenIds[appAccountPublic.AppId]); appUserAccount = ProviderGateway.AppUserAccountProvider.GetByOpenId(appAccountPrivate.AppId, cookie.OpenIds[appAccountPrivate.AppId]); appAccountPublicId = appAccountPublic.AppAccountId; if (appUserAccountMaster == null) { if (appUserAccount != null) { //如果与其他账户冲突 var appUserAccoutTemp = ProviderGateway.AppUserAccountProvider.GetByUserId(appUserAccount.TenantId, appUserAccount.UserId, appAccountPublic.AppId); if (appUserAccoutTemp == null) { //补充主账户 var appUserAccountMasterNew = new AppUserAccountInfo(); appUserAccountMasterNew.AppId = appAccountPublic.AppId; appUserAccountMasterNew.OpenId = cookie.OpenIds[appAccountPublic.AppId]; appUserAccountMasterNew.TenantId = appUserAccount.TenantId; appUserAccountMasterNew.UserId = appUserAccount.UserId; appUserAccountMasterNew.BeisenAccount = BeisenUserProxy.GetUserEmail(appUserAccount.UserId); appUserAccountMasterNew.Type = AppUserAccountType.Email; appUserAccountMasterNew.State = AppUserAccountState.Activated; appUserAccountMasterNew.MasterAccountId = 0; var appUserAccountMasterNewId = ProviderGateway.AppUserAccountProvider.AddOrUpdate(appUserAccountMasterNew.TenantId, appUserAccountMasterNew); ProviderGateway.AppUserAccountProvider.UpdateMasterAccountId(appUserAccount.Id, appUserAccountMasterNewId); cookie.AccountAppId = appAccountPublic.AppId; cookie.AccountOpenId = cookie.OpenIds[appAccountPublic.AppId]; return(null); } } } else if (appUserAccountMaster.State == AppUserAccountState.Activated) { if (appUserAccount == null) { //补充账户信息 var appUserAccountNew = new AppUserAccountInfo(); appUserAccountNew.AppId = appAccountPrivate.AppId; appUserAccountNew.OpenId = cookie.OpenIds[appAccountPrivate.AppId]; appUserAccountNew.TenantId = appUserAccountMaster.TenantId; appUserAccountNew.UserId = appUserAccountMaster.UserId; appUserAccountNew.BeisenAccount = appUserAccountMaster.BeisenAccount; appUserAccountNew.Type = appUserAccountMaster.Type; appUserAccountNew.State = appUserAccountMaster.State; appUserAccountNew.MasterAccountId = appUserAccountMaster.Id; ProviderGateway.AppUserAccountProvider.AddOrUpdate(appUserAccountNew.TenantId, appUserAccountNew); } else if (appUserAccount.MasterAccountId != appUserAccountMaster.Id) { //更新MasterId ProviderGateway.AppUserAccountProvider.UpdateMasterAccountId(appUserAccount.Id, appUserAccountMaster.Id); } cookie.AccountAppId = appAccountPublic.AppId; cookie.AccountOpenId = cookie.OpenIds[appAccountPublic.AppId]; return(null); } break; default: appUserAccountMaster = ProviderGateway.AppUserAccountProvider.GetByOpenId(appAccountPrivate.AppId, cookie.OpenIds[appAccountPrivate.AppId]); appAccountPublicId = appAccountPrivate.AppAccountId; if (appUserAccountMaster != null && appUserAccountMaster.State == AppUserAccountState.Activated) { cookie.AccountAppId = appAccountPrivate.AppId; cookie.AccountOpenId = cookie.OpenIds[appAccountPrivate.AppId]; return(null); } break; } } //记录回调信息 var batchId = Guid.NewGuid().ToString(); var callbackContent = new CallbackContentInfo { BatchId = batchId, TenantId = tenantId, AppAccountPublic = appAccountPublicId, AppAccountPrivate = appAccountPrivate == null ? null : appAccountPrivate.AppAccountId, Content = redirectUrl, State = state }; ProviderGateway.CallbackContentProvider.Add(callbackContent); if (state == CallbackContentState.Bind) { return(UrlHelper.AddParameter(HostConst.UserBind, "batch", batchId)); } else { var parameter = redirectUrl.Split('?'); var query = parameter.Length > 0 ? string.Format("{0}&batch={1}", parameter[1], batchId) : string.Empty; return(UrlHelper.AddQuery(HostConst.RegisterBind, query)); } }
public object Post([FromBody] LoginModel model) { if (IsAuthenticated) { return new { result = false } } ; if (BruteForceLock.IsBanned(HttpContext.Current.Request.UserHostAddress)) { return new { result = false, attempts = 0 } } ; if (!ModelState.IsValid) { var errors = new List <string>(); foreach (var value in ModelState.Values) { foreach (var error in value.Errors) { errors.Add(error.ErrorMessage); } } return(new { result = false, attempts = GetRemainingAttempts(), errors = errors }); } var email = model.Email.ToLower(); var password_hash = model.Password.ToPasswordHash(email); var user = _database.Login(email, password_hash); if (user == null) { var ts = BruteForceLock.OnFailed(HttpContext.Current.Request.UserHostAddress); if (ts.HasValue) { return(new { result = false, attempts = 0, banTime = (int)ts.Value.TotalSeconds }); } // username or password wrong return(new { result = false, attempts = GetRemainingAttempts() }); } // set cookie etc... BruteForceLock.OnSuccess(HttpContext.Current.Request.UserHostAddress); var userCookie = UserCookie.Create(email); var expireDate = DateTime.UtcNow + UserCookieCache.CookieLifetime; var cookie = new HttpCookie(UserCookie.CookieName); cookie.Expires = expireDate; cookie.Value = userCookie.SecureHash; if (!string.IsNullOrWhiteSpace(UserCookie.CookieDomain)) { cookie.Domain = UserCookie.CookieDomain; } HttpContext.Current.Response.Cookies.Add(cookie); UserCookieCache.AddSession(userCookie.SecureHash, HttpContext.Current.Request.UserHostAddress, user.Id, expireDate); _database.AddUserLog(user.Id, "Logged in"); return(new { result = true }); } } }
/// <summary> /// 记录当前用户信息和登录信息 /// </summary> /// <param name="userAccount"></param> /// <param name="entity"></param> private static void RecordCurrentUserInfoAndLoginInfo(string userAccount, BusinessUser entity) { //在客户端写入登录信息 if (EnvironmentHelper.IsWebApplicatonMode == true) { //0.记录用户Cookie1 FormsAuthentication.SetAuthCookie(userAccount, false); //1.记录用户Cookie2 UserCookie userCookie = new UserCookie(); userCookie.UserGuid = entity.UserGuid; userCookie.UserID = entity.UserID; userCookie.UserName = entity.UserName; userCookie.UserType = entity.UserType; userCookie.Save(); } else { CurrentUser = entity; } UpdateLastInfo(entity.UserGuid, ClientBrowser.GetClientIP(), DateTimeHelper.RunningLocalNow); }
/// <summary> /// 获取开放平台授权URL /// </summary> /// <param name="appAccountId"></param> /// <param name="redirectUrl"></param> /// <param name="type">公共服务号类型。12:微信服务号,21:钉钉</param> /// <param name="cookie"></param> /// <returns></returns> public string GetAuthorizeUrl(string appAccountId, string redirectUrl, int type, UserCookie cookie, string loginType = null) { //Log 信息 // AppConnectLogHelper.ErrorFormat("进入GetAuthorizeUrl方法!appAccountId:{0},redirectUrl:{1},type:{2}", appAccountId, redirectUrl, type); ArgumentHelper.AssertIsTrue(!string.IsNullOrWhiteSpace(redirectUrl), "redirectUrl is null or empty"); AppAccountInfo appAccountPublic; AppAccountInfo appAccountPrivate; AppAccountInfo appAccountAuthorize; string appAccountPublicId; string appAccountPrivateId = null; CallbackContentState callbackState; var tenantId = 0; //根据类型初始化信息 if (string.IsNullOrWhiteSpace(appAccountId)) { //公共账户方式 AppConnectLogHelper.Debug("进入GetAuthorizeUrl方法->公共账户方式!"); appAccountPublic = ProviderGateway.AppAccountProvider.GetPublicByType(type); if (!string.IsNullOrWhiteSpace(CookieHelper.GetOpenId(cookie, appAccountPublic.AppId))) { return(null); } appAccountPublicId = appAccountPublic.AppAccountId; callbackState = CallbackContentState.Public; appAccountAuthorize = appAccountPublic; } else { //私有账户类型 AppConnectLogHelper.Debug("进入GetAuthorizeUrl方法->私有账户方式!"); appAccountPrivate = ProviderGateway.AppAccountProvider.Get(appAccountId); if (appAccountPrivate == null) { AppConnectLogHelper.Error("AppAccountProvider-GetByAppAccountId 为 null"); return(null); } appAccountPrivateId = appAccountPrivate.AppAccountId; tenantId = appAccountPrivate.TenantId; switch (appAccountPrivate.Type) { case 11: case 12: AppConnectLogHelper.Debug("进入GetAuthorizeUrl方法->私有账户方式!->Case11,12"); appAccountPublic = ProviderGateway.AppAccountProvider.GetPublicByType(appAccountPrivate.Type); appAccountPublicId = appAccountPublic.AppAccountId; if (!string.IsNullOrWhiteSpace(CookieHelper.GetOpenId(cookie, appAccountPublic.AppId)) && !string.IsNullOrWhiteSpace(CookieHelper.GetOpenId(cookie, appAccountPrivate.AppId))) { return(null); } if (!string.IsNullOrWhiteSpace(CookieHelper.GetOpenId(cookie, appAccountPublic.AppId))) { callbackState = CallbackContentState.Private; appAccountAuthorize = appAccountPrivate; } else if (!string.IsNullOrWhiteSpace(CookieHelper.GetOpenId(cookie, appAccountPrivate.AppId))) { callbackState = CallbackContentState.Public; appAccountAuthorize = appAccountPublic; } else { callbackState = CallbackContentState.PrivateAndPublic; appAccountAuthorize = appAccountPublic; } break; default: AppConnectLogHelper.Debug("进入GetAuthorizeUrl方法->私有账户方式!->CaseDefault"); if (string.IsNullOrWhiteSpace(CookieHelper.GetOpenId(cookie, appAccountPrivate.AppId))) { callbackState = CallbackContentState.Private; appAccountAuthorize = appAccountPrivate; appAccountPublicId = appAccountPrivate.AppAccountId; } else { AppConnectLogHelper.Debug("进入GetAuthorizeUrl方法->私有账户方式!->CaseDefault->Cookie有值返回Null"); return(null); } break; } } AppConnectLogHelper.Debug("进入GetAuthorizeUrl方法->私有账户方式!->Case->记录回调信息"); //记录回调信息 var batchId = Guid.NewGuid().ToString(); var callbackContent = new CallbackContentInfo { BatchId = batchId, TenantId = tenantId, AppAccountPublic = appAccountPublicId, AppAccountPrivate = appAccountPrivateId, Content = redirectUrl, State = callbackState }; ProviderGateway.CallbackContentProvider.Add(callbackContent); var state = Guid.NewGuid().ToString("N"); AppConnectLogHelper.Debug("进入GetAuthorizeUrl方法->私有账户方式!->Case->记录回调信息->记录Cookie"); try { AppConnectLogHelper.Debug("进入GetAuthorizeUrl方法->私有账户方式!->Case->记录回调信息->记录Cookie前->State:" + state); CookieHelper.SetState(state); var getCookieState = CookieHelper.GetState(); AppConnectLogHelper.Debug("进入GetAuthorizeUrl方法->私有账户方式!->Case->记录回调信息->记录Cookie后获取->State:" + getCookieState); } catch (System.Exception ex) { AppConnectLogHelper.Debug("SetState加日志发生了错误!!!!!"); } //生成授权Url var extend = new Dictionary <string, string> { { TemplateConst.ExtendState, state }, { TemplateConst.ExtendBatch, batchId } }; string url = null; //钉钉的PC登录 if (!string.IsNullOrEmpty(loginType) && loginType == "0") { var requestTemplate = new DefaultApiTemplate(appAccountAuthorize, TemplateConst.AuthorizePCUrl, extend); url = requestTemplate.GetRequestUrl(); } else { var requestTemplate = new DefaultApiTemplate(appAccountAuthorize, TemplateConst.AuthorizeUrl, extend); url = requestTemplate.GetRequestUrl(); } AppConnectLogHelper.Debug("进入GetAuthorizeUrl方法->私有账户方式!->Case->记录回调信息->记录Cookie后获取->State->Url" + url); return(url); }
/// <summary> /// AuthorizeCore返回false时执行 /// </summary> /// <param name="filterContext"></param> protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext) { using (DataWallContext db = new DataWallContext()) { var Cookies = SecurityHelper.DecryptDES(CookieHelper.GetCookieValue("User"), db.SysProgramInfos.AsNoTracking().FirstOrDefault().CookieSecretKey); base.HandleUnauthorizedRequest(filterContext); if (Cookies.Length != 0) { UserCookie user = JsonConvert.DeserializeObject <UserCookie>(Cookies); //验证用户是否被禁用或删除 if (db.SysUsers.FirstOrDefault(u => u.IsEnable == 0 & u.DelState == 0 & u.UserName == user.UserName) != null) { if (filterContext != null) { filterContext.Result = new JsonResult { Data = new { code = "401", msg = "您没有权限进行该操作!" }, JsonRequestBehavior = JsonRequestBehavior.AllowGet }; } } else { if (filterContext.HttpContext.Request.IsAjaxRequest()) { filterContext.Result = new JsonResult { Data = new { code = "402", msg = "登录超时,请重新登录!", url = "/Admin/Login" }, JsonRequestBehavior = JsonRequestBehavior.AllowGet }; } else { //跳转至登录超时页面 filterContext.Result = new RedirectResult("/Error/ErrorLoginTimeout"); //当前访问页面:filterContext.HttpContext.Request.Url //filterContext.HttpContext.Response.Redirect("/Admin/Login"); } } } else { if (filterContext.HttpContext.Request.IsAjaxRequest()) { filterContext.Result = new JsonResult { Data = new { code = "402", msg = "登录超时,请重新登录!", url = "/Admin/Login" }, JsonRequestBehavior = JsonRequestBehavior.AllowGet }; } else { //跳转至登录超时页面 filterContext.Result = new RedirectResult("/Error/ErrorLoginTimeout"); //当前访问页面:filterContext.HttpContext.Request.Url //filterContext.HttpContext.Response.Redirect("/Admin/Login"); } } } }
void Init() { _IniPath = AppDomain.CurrentDomain.BaseDirectory + "idpe.ini"; if (File.Exists(_IniPath)) { StreamReader sr = new StreamReader(_IniPath); string fileContent = sr.ReadToEnd(); sr.Close(); _UserCookie = new UserCookie(fileContent); foreach (string user in _UserCookie.UserNames) { cbUserName.Items.Add(user); } cbUserName.Text = _UserCookie.UserName; cbSdfs.Text = _UserCookie.SdfName; } else { _UserCookie = new UserCookie(); } lblVersion.Text = "Version - " + AssemblyVersion; if (EyediaCoreConfigurationSection.CurrentConfig.AuthenticationType == AuthenticationTypes.ActiveDirectory) { pnlLoginBox.Visible = false; Authenticator authenticator = new Authenticator(EyediaCoreConfigurationSection.CurrentConfig.AuthenticationType); Information.LoggedInUser = authenticator.Authenticate(); if (authenticator.IsAuthenticated) { timerLoad.Enabled = true; } else { ShowMessage("Unauthorized: Active directory authentication failed. Please contact administrator for further information.", true); timerExit.Enabled = true; return; } } else if (EyediaCoreConfigurationSection.CurrentConfig.AuthenticationType == AuthenticationTypes.ActiveDirectoryGroup) { pnlLoginBox.Visible = false; Authenticator authenticator = new Authenticator(EyediaCoreConfigurationSection.CurrentConfig.AuthenticationType); Information.LoggedInUser = authenticator.Authenticate(EyediaCoreConfigurationSection.CurrentConfig.AuthorizedGroups); if (authenticator.IsAuthenticated) { timerLoad.Enabled = true; } else { ShowMessage("Unauthorized: Seems like you do not belong to correct AD group(s). Please contact administrator for further information.", true); timerExit.Enabled = true; return; } } else { List <string> sdfFiles = new List <string>(Directory.GetFiles(AppDomain.CurrentDomain.BaseDirectory, "*.sdf")); foreach (string dbFile in sdfFiles) { cbSdfs.Items.Add(Path.GetFileName(dbFile)); } if (cbSdfs.Items.Count > 1) { label3.Visible = true; cbSdfs.Visible = true; IgnoreDataBaseChangedEvent = true; cbSdfs.Text = _UserCookie.SdfName; IgnoreDataBaseChangedEvent = false; if (cbSdfs.SelectedIndex == -1) { if (cbSdfs.Items.Count == 1) { cbSdfs.SelectedIndex = 0; } else if (cbSdfs.Items.Count > 0) { cbSdfs.Select(); return; } } } else { label3.Visible = false; cbSdfs.Visible = false; } } }