/// <summary> /// 初始化一个应用系统用户 /// </summary> public static ResultOfInitBasicLogin InitBasicLogin(DBOperator dbOperator, int userID) { ResultOfInitBasicLogin myResult = new ResultOfInitBasicLogin(); Bigdesk2010.Business.UserRightManager.IUserRightInfo ur = new Bigdesk2010.Business.UserRightManager.UserRightInfo(dbOperator, userID); if (ur.CountOfUserMatched < 1) { myResult.ResultCode = ResultCodeOfInitBasicLogin.用户不存在; myResult.Message = "用户不存在!"; return(myResult); } else if (ur.CountOfUserMatched > 1) { myResult.ResultCode = ResultCodeOfInitBasicLogin.用户重复; myResult.Message = "用户重复,请与系统管理员联系!"; return(myResult); } myResult.ResultCode = ResultCodeOfInitBasicLogin.唯一用户; BasicLoginInfo workUser = new BasicLoginInfo(); workUser.UserID = ur.UserID; workUser.LoginName = ur.LoginName; workUser.UserName = ur.UserName; workUser.UserType = ur.UserType; workUser.OrgUnitName = ur.OrgUnitName; myResult.WorkUser = workUser; return(myResult); }
/// <summary> /// /// </summary> public static void SetBasicLoginInfo(BasicLoginInfo loginInfo) { if (GetAuthenticationMode() == "Forms") { HttpCookie basicLoginCookie = new HttpCookie(CookieNameOfBasicLoginInfo); basicLoginCookie.Expires = DateTime.Now.AddDays(1); //设置Cookie超时时间 basicLoginCookie[KeyNameOfUserID] = loginInfo.UserID.ToString(); basicLoginCookie[KeyNameOfLoginName] = HttpUtility.UrlEncode(loginInfo.LoginName); basicLoginCookie[KeyNameOfUserName] = HttpUtility.UrlEncode(loginInfo.UserName);//因为cookie里中文字符在浏览器和web server间直接传递时,会变成乱码,故需要Encode一下 basicLoginCookie[KeyNameOfUserType] = HttpUtility.UrlEncode(loginInfo.UserType.ToString()); basicLoginCookie[KeyNameOfOrgUnitName] = HttpUtility.UrlEncode(loginInfo.OrgUnitName); HttpContext.Current.Response.AppendCookie(basicLoginCookie); } else { HttpContext.Current.Session[SessionNameOfBasicLoginInfo] = loginInfo; } }
/// <summary> /// /// </summary> public static BasicLoginInfo GetBasicLoginInfo() { if (HttpContext.Current.User.Identity.AuthenticationType == "Forms" && HttpContext.Current.User.Identity.IsAuthenticated) { //因为cookie是全网站公用的,故首先看cookie BasicLoginInfo loginInfo = new BasicLoginInfo(); HttpCookie basicLoginCookie = HttpContext.Current.Request.Cookies[CookieNameOfBasicLoginInfo]; if (!basicLoginCookie.IsEmpty()) { loginInfo.UserID = basicLoginCookie[KeyNameOfUserID].ToInt32(); loginInfo.LoginName = basicLoginCookie[KeyNameOfLoginName]; loginInfo.UserName = HttpUtility.UrlDecode(basicLoginCookie[KeyNameOfUserName]); loginInfo.OrgUnitName = HttpUtility.UrlDecode(basicLoginCookie[KeyNameOfOrgUnitName]); loginInfo.UserType = (BasicUserType)Enum.Parse(typeof(BasicUserType), HttpUtility.UrlDecode(basicLoginCookie[KeyNameOfUserType])); return(loginInfo); } } else if (!HttpContext.Current.Session[SessionNameOfScicLoginInfo].IsEmpty()) //如果没有用cookie,则从session中查找 { return((BasicLoginInfo)HttpContext.Current.Session[SessionNameOfBasicLoginInfo]); } return(null); //"未取到登录信息 }