public async Task AmbientSessionContextFlow(int it, int delay) { var session = new BaseSession(Guid.NewGuid(), 0); var user = new User(new IDPasswordCredentials("a", "b"), new SysAuthToken(), "User1", Rights.None); session.DataContextName = "abcd"; session.User = user; ExecutionContext.__SetThreadLevelSessionContext(session); checkAmbientSession("User1"); for (var i = 0; i < it; i++) { await Task.Delay(delay)//note: Task.Yield() yields on the same thread if there is no load .ContinueWith(a => TaskUtils.LoadAllCoresFor(delay)) .ContinueWith(a => checkAmbientSession("User1")); } //---------- switch user in-place -------------------- "Switching user in-place".See(); session.User = new User(new IDPasswordCredentials("a", "b"), new SysAuthToken(), "User2", Rights.None); checkAmbientSession("User2"); for (var i = 0; i < it; i++) { await Task.Delay(delay) .ContinueWith(a => TaskUtils.LoadAllCoresFor(delay)) .ContinueWith(a => checkAmbientSession("User2")); } }
public FindCommandResult FindCommand(string cmd) { Debug.Log("Searching for: " + cmd); FindCommandResult result = new FindCommandResult(); string [] envPathSplit = BaseSession.GetEnvValue("PATH").Split(new char[] { ':' }); for (int i = 0; i < envPathSplit.Length; i++) { NixPath path = new NixPath(envPathSplit[i]); path.AppendPath(cmd); if (RootDrive.IsFile(path)) { result.Path = path.ToString(); result.Builtin = false; result.Found = true; return(result); } } if (BinPrograms.ContainsKey(cmd)) { result.Path = cmd; result.Builtin = true; result.Found = true; return(result); } result.Found = false; return(result); }
public void GetIdleTimeMilliseconds_increases_over_time() { var session = new BaseSession(null); Thread.Sleep(20); Assert.InRange(session.GetIdleTime().TotalMilliseconds, 15, 100); }
public WCFReturnResult ResetPwd(WCFAuthInfoVM entity_WCFAuthInfoVM, LoginUserVM entity_LUVM) { try { //Restore Server Session WCFReturnResult returnResult = new WCFReturnResult(); WCFSesssionPolicy wcfPolicy = new WCFSesssionPolicy(); BaseSession entity_BaseSession = wcfPolicy.RestoreWCFSesssion(entity_WCFAuthInfoVM); //Contruct Login User Respository CoolPrivilegeControlContext dbContext = CoolPrivilegeControlContext.CreateContext(); LoginUserRespository loginUserRespo = new LoginUserRespository(dbContext, entity_BaseSession.ID); List <string> strList_Error = new List <string>(); var ret = loginUserRespo.ResetPwd(entity_LUVM, languageKey, ref strList_Error); returnResult.IsSuccess = ret; if (strList_Error.Count > 0) { foreach (var item in strList_Error) { returnResult.StrList_Error.Add(item); } } return(returnResult); } catch (Exception ex) { throw new FaultException <WCFErrorContract>(new WCFErrorContract(ex), ex.Message); } }
public void DataContextNorm(string dcn, string norm) { var session = new BaseSession(Guid.NewGuid(), 0); session.DataContextName = dcn; session.GetNormalizedDataContextName(); }
private void impersonate(Credentials credentials) { var session = new BaseSession(Guid.NewGuid(), 1234); session.User = m_App.SecurityManager.Authenticate(credentials); Azos.Apps.ExecutionContext.__SetThreadLevelSessionContext(session); }
/// <summary> /// Constructor. Protected because we don't want anyone creating a base class instance. /// </summary> protected BaseCommand() { DG200FileLogger.Log("BaseCommand constructor.", 3); this._session = null; this._currentResult = null; this._serialConnection = null; }
public void DataContextNorm(string dcn, string norm) { var session = new BaseSession(Guid.NewGuid(), 0); session.DataContextName = dcn; var got = session.GetNormalizedDataContextName(); Aver.AreEqual(norm, got); }
/// <summary> /// Shortcut method that creates a temp/mock BaseSession object thus checking permission in mock BaseSession context /// </summary> public Task <bool> CheckAsync(IApplication app, User user) { if (user == null || !user.IsAuthenticated) { return(Task.FromResult(false)); } #warning May avoid heap allocation here by implementing SessionStub as struct var session = new BaseSession(Guid.NewGuid(), app.Random.NextRandomUnsignedLong); session.User = user; return(this.CheckAsync(app, session)); }
/// <summary> /// Shortcut method that creates a temp/mock BaseSession object thus checking permission in mock BaseSession context /// </summary> public bool Check(IApplication app, User user) { if (user == null || !user.IsAuthenticated) { return(false); } var session = new BaseSession(Guid.NewGuid(), app.Random.NextRandomUnsignedLong); session.User = user; return(this.Check(app, session)); }
/// <summary> /// Shortcut method that creates a temp/mock BaseSession object thus checking permission in mock BaseSession context /// </summary> public bool Check(User user) { if (user == null || !user.IsAuthenticated) { return(false); } var session = new BaseSession(Guid.NewGuid()); session.User = user; return(this.Check(session)); }
/// <summary> /// Shortcut method that creates a temp/mock BaseSession object thus checking permission in mock BaseSession context /// </summary> public Task <bool> CheckAsync(ISecurityManager secman, User user) { secman.NonNull(nameof(secman)); if (user == null || !user.IsAuthenticated) { return(Task.FromResult(false)); } var session = new BaseSession(Guid.NewGuid(), secman.App.Random.NextRandomUnsignedLong); session.User = user; return(this.CheckAsync(secman, session)); }
/** 处理服务器收到的帧 */ public void Execute(BaseSession session, Frame frame) { byte[] body = null; if (frame.IsBodyHasDataInStream() == false && frame.GetTotalBodySize() > 0) { body = frame.GetBodyBytes(); string info = Encoding.UTF8.GetString(body, 0, body.Length); Console.WriteLine("客户端发过来:" + info + "【CmdHeartbeat】"); } Frame frm_send = new Frame(frame.GetFrameSerialNumber(), GetT(), body); //要发给客户端的帧 session.Send(frm_send); }
/** 处理服务器收到的帧 */ public void Execute(BaseSession session, Frame frame) { if (frame.IsBodyHasDataInStream() == false && frame.GetTotalBodySize() > 0) { //客户端发过来的是UFT-8字符串 byte[] body = frame.GetBodyBytes(); string info = Encoding.UTF8.GetString(body, 0, body.Length); Console.WriteLine("客户端发过来:" + info + "【CmdHello】"); } //服务器回应"Hello"字符串 string replay = "Hello"; byte[] replay_body = Encoding.UTF8.GetBytes(replay); Frame frm_send = new Frame(frame.GetFrameSerialNumber(), GetT(), replay_body); //要发给客户端的帧 session.Send(frm_send); }
/// <inheritdoc /> /// <exception cref="ArgumentNullException"> /// Thrown if <paramref name="endpointCrypto"/> or <paramref name="handshakeInfo"/> are <see langword="null"/>. /// </exception> public void Start(EndpointCrypto endpointCrypto, HandshakeInfo handshakeInfo) { if (endpointCrypto == null) { throw new ArgumentNullException(nameof(endpointCrypto)); } if (handshakeInfo == null) { throw new ArgumentNullException(nameof(handshakeInfo)); } ThrowIfNoPacketReceivedSubscriber(); Crypto = endpointCrypto; byte[] handshake = ConstructHandshakePacket(handshakeInfo); BaseSession.Start(); BaseSession.Write(handshake); }
public int GetTotalAuthorizationCount(WCFAuthInfoVM entity_WCFAuthInfoVM) { try { WCFSesssionPolicy wcfPolicy = new WCFSesssionPolicy(); CoolPrivilegeControlContext dbContext = CoolPrivilegeControlContext.CreateContext(); BaseSession entity_BaseSession = wcfPolicy.RestoreWCFSesssion(entity_WCFAuthInfoVM); AuthorizedHistoryRespository authorizedHistoryRespo = new AuthorizedHistoryRespository(dbContext, entity_BaseSession.ID); int int_Counter = authorizedHistoryRespo.GetTotalAuthorizationCount(OperationType.L); return(int_Counter); } catch (Exception ex) { throw new FaultException <WCFErrorContract>(new WCFErrorContract(ex), ex.Message); } }
/** 处理服务器收到的帧 */ public void Execute(BaseSession session, Frame frame) { byte[] body = null; if (frame.IsBodyHasDataInStream() == false && frame.GetTotalBodySize() > 0) { body = frame.GetBodyBytes(); string info = Encoding.UTF8.GetString(body, 0, body.Length); Console.WriteLine("客户端发过来:" + info + "【CmdBye】"); } //服务器回应"Bye"字符串 string replay = "Bye ! Close session now !"; byte[] replay_body = Encoding.UTF8.GetBytes(replay); Frame frm_send = new Frame(frame.GetFrameSerialNumber(), GetT(), replay_body); //要发给客户端的帧 session.Send(frm_send); //服务器关闭Session session.SetOffline(); }
public void LoginAndGetToken() { string str_Token = ""; LoginUserMgtHelper loginUserMgtHelper = new LoginUserMgtHelper(postOffice.LoginUserMgtSerPath); LoginUserVM entity_LUVM = new LoginUserVM(); entity_LUVM.LoginName = "admin"; entity_LUVM.LoginPwd = "123456"; LUSerLoginResult loginResult = loginUserMgtHelper.Login(entity_LUVM, LanguageKey.ToString(), "", ""); if (loginResult != null) { str_Token = loginResult.Str_ServerToken; entity_BaseSession = loginResult.Entity_SessionWUserInfo; } StrToken = str_Token; }
public void GetIdleTimeMilliseconds_increases_over_time() { var session = new BaseSession(null); Thread.Sleep(20); Assert.InRange(session.GetIdleTime().TotalMilliseconds, 15, 100); }
/// <summary> /// Initializes a new instance of the BaseStatement class based on the specified session. /// </summary> /// <param name="session">The session where the statement will be executed.</param> public BaseStatement(BaseSession session) { Session = session; }
public void GetIdleTimeMilliseconds_starts_at_zero() { var session = new BaseSession(null); Assert.InRange(session.GetIdleTime().TotalMilliseconds, 0, 15); }
/// <summary> /// Initializes a new instance of the BaseStatement class based on the specified session. /// </summary> /// <param name="session">The session where the statement will be executed.</param> public BaseStatement(BaseSession session) { Session = session; _hasChanged = true; }
public void GetIdleTimeMilliseconds_starts_at_zero() { var session = new BaseSession(null); Assert.InRange(session.GetIdleTime().TotalMilliseconds, 0, 15); }
private void LimpiarSession() { BaseSession.Logout(); }
/// <summary> /// Creates a <see cref="FailoverGroup"/> if more than one host is found. /// </summary> /// <param name="hierPart">A string containing an unparsed list of hosts.</param> /// <param name="isXProtocol"><c>true</c> if the connection is X Protocol; otherwise <c>false</c>.</param> /// <param name="connectionDataIsUri"><c>true</c> if the connection data is a URI; otherwise <c>false</c>.</param> /// <returns>The number of hosts found, -1 if an error was raised during parsing.</returns> internal static int ParseHostList(string hierPart, bool isXProtocol, bool connectionDataIsUri = true) { if (string.IsNullOrWhiteSpace(hierPart)) { return(-1); } int hostCount = -1; FailoverMethod failoverMethod = FailoverMethod.Random; string[] hostArray = null; List <FailoverServer> hostList = new List <FailoverServer>(); hierPart = hierPart.Replace(" ", ""); if (!hierPart.StartsWith("(") && !hierPart.EndsWith(")")) { hostArray = hierPart.Split(','); if (hostArray.Length == 1) { return(1); } foreach (var host in hostArray) { hostList.Add(ConvertToFailoverServer(host, connectionDataIsUri: connectionDataIsUri)); } hostCount = hostArray.Length; } else { string[] groups = hierPart.Split(new string[] { "),(" }, StringSplitOptions.RemoveEmptyEntries); bool? allHavePriority = null; int defaultPriority = -1; foreach (var group in groups) { // Remove leading parenthesis. var normalizedGroup = group; if (normalizedGroup.StartsWith("(")) { normalizedGroup = group.Substring(1); } if (normalizedGroup.EndsWith(")")) { normalizedGroup = normalizedGroup.Substring(0, normalizedGroup.Length - 1); } string[] items = normalizedGroup.Split(','); string[] keyValuePairs = items[0].Split('='); if (keyValuePairs[0].ToLowerInvariant() != "address") { throw new KeyNotFoundException(string.Format(ResourcesX.KeywordNotFound, "address")); } string host = keyValuePairs[1]; if (string.IsNullOrWhiteSpace(host)) { throw new ArgumentNullException("server"); } if (items.Length == 2) { if (allHavePriority != null && allHavePriority == false) { throw new ArgumentException(ResourcesX.PriorityForAllOrNoHosts); } allHavePriority = allHavePriority ?? true; keyValuePairs = items[1].Split('='); if (keyValuePairs[0].ToLowerInvariant() != "priority") { throw new KeyNotFoundException(string.Format(ResourcesX.KeywordNotFound, "priority")); } if (string.IsNullOrWhiteSpace(keyValuePairs[1])) { throw new ArgumentNullException("priority"); } int priority = -1; Int32.TryParse(keyValuePairs[1], out priority); if (priority < 0 || priority > 100) { throw new ArgumentException(ResourcesX.PriorityOutOfLimits); } if (isXProtocol) { hostList.Add(ConvertToFailoverServer(BaseSession.IsUnixSocket(host) ? BaseSession.NormalizeUnixSocket(host) : host, priority, connectionDataIsUri: connectionDataIsUri)); } else { hostList.Add(ConvertToFailoverServer(host, priority)); } } else { if (allHavePriority != null && allHavePriority == true) { throw new ArgumentException(ResourcesX.PriorityForAllOrNoHosts); } allHavePriority = allHavePriority ?? false; hostList.Add(ConvertToFailoverServer(host, defaultPriority, connectionDataIsUri: connectionDataIsUri)); } } hostCount = groups.Length; if (hostList.GroupBy(h => h.Priority).ToList().Count > 1) { failoverMethod = FailoverMethod.Priority; } else { failoverMethod = FailoverMethod.Random; } } SetHostList(hostList, failoverMethod); return(hostCount); }
/** 处理服务器收到的帧 */ public void Execute(BaseSession session, Frame frame) { Console.WriteLine("客户端发过来:上传文件(" + frame.GetTotalBodySize() + "字节)【CmdUploadFile】"); UInt16 SN = 0; //上传文件使用这样的嵌套的 TLV 帧结构,TLV1(V1=TLV2+TLV3):T1=UPLOADFILE,T2=FILENAME,T3=FILEDATA UInt16 t_file_name = 0; //T2 - FILENAME(文件名) UInt16 t_file_data = 0; //T3 - FILEDATA(文件数据) //检查是大型帧(没有字节数组,只有流对象),还是小型帧(只有字节数组,没有流对象) BinaryReader br = null; if (frame.IsBodyHasDataInStream()) { br = frame.GetBodyStream(); //大型帧 } #region STLV2 - FILENAME(文件名) //帧序列号 - 子帧的序列号是0 if (frame.IsBodyHasDataInStream()) { SN = br.ReadUInt16(); } else { SN = BitConverter.ToUInt16(frame.GetBodyBytes(), 0); } //帧类型值 if (frame.IsBodyHasDataInStream()) { t_file_name = br.ReadUInt16(); } else { t_file_name = BitConverter.ToUInt16(frame.GetBodyBytes(), 2); } if (t_file_name != (UInt16)EMyCommand.FILENAME) { throw new Exception("无文件名子帧"); } //帧体长度 UInt32 L_file_name = 0; if (frame.IsBodyHasDataInStream()) { L_file_name = br.ReadUInt32(); } else { L_file_name = BitConverter.ToUInt32(frame.GetBodyBytes(), 4); } byte[] fnb = new byte[L_file_name]; //帧体 if (frame.IsBodyHasDataInStream()) { br.Read(fnb, 0, fnb.Length); } else { Array.Copy(frame.GetBodyBytes(), 8, fnb, 0, L_file_name); } string file_name = Encoding.UTF8.GetString(fnb); #endregion #region 文件保存到当前目录 string exe_path = System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName; int pos = exe_path.LastIndexOf('\\'); string path = exe_path.Substring(0, pos + 1); string file_path = path + file_name; #endregion FileStream fs = new FileStream(file_path, FileMode.Create); BinaryWriter bw = new BinaryWriter(fs); #region 文件数据 //帧序列号 - 子帧的序列号是0 if (frame.IsBodyHasDataInStream()) { SN = br.ReadUInt16(); } else { SN = BitConverter.ToUInt16(frame.GetBodyBytes(), 8 + (int)L_file_name); } //帧类型值 if (frame.IsBodyHasDataInStream()) { t_file_data = br.ReadUInt16(); } else { t_file_data = BitConverter.ToUInt16(frame.GetBodyBytes(), 10 + (int)L_file_name); } if (t_file_data != (UInt16)EMyCommand.FILEDATA) { throw new Exception("无文件数据子帧"); } //帧体 UInt32 L_file_data = 0; if (frame.IsBodyHasDataInStream()) { L_file_data = br.ReadUInt32(); } else { L_file_data = BitConverter.ToUInt32(frame.GetBodyBytes(), 8 + (int)L_file_name + 4); } byte[] tmp = new byte[1024 * 1024]; //每次读1MBytes UInt32 block_count = (L_file_data / (UInt32)tmp.Length) + (L_file_data % (UInt32)tmp.Length > 0 ? (UInt32)1 : (UInt32)0); for (int i = 0; i < block_count; ++i) { UInt32 last_block_size = (L_file_data % (UInt32)tmp.Length > 0 ? (L_file_data % (UInt32)tmp.Length) : (UInt32)tmp.Length); UInt32 block_size = (i == block_count - 1 ? last_block_size : (UInt32)tmp.Length); if (frame.IsBodyHasDataInStream()) { br.Read(tmp, 0, (int)block_size); } else { Array.Copy(frame.GetBodyBytes(), 8 + (int)L_file_name + 8 + i * tmp.Length, tmp, 0, block_size); } bw.Write(tmp, 0, (int)block_size); } #endregion bw.Close(); bw.Dispose(); fs.Close(); fs.Dispose(); byte[] body = Encoding.UTF8.GetBytes("OK"); Frame frm_send = new Frame(frame.GetFrameSerialNumber(), GetT(), body); //要发给客户端的帧 session.Send(frm_send); }
//private void Load_Settings() //{ // BaseEntity objBase = new BaseEntity(); // DataTable dt = ResourceBL.Instance.Settings_GetAll(ref objBase); // if (objBase.Errors.Count == 0) // { // if (dt != null) // { // foreach (DataRow item in dt.Rows) // { // hfIsVisiableChat.Value = item["ChatOnlineActive"].ToString(); // } // } // } //} protected void btnCloseSession_ServerClick(object sender, EventArgs e) { BaseSession.Logout(); Response.Redirect("Index.aspx"); }
protected void btnCerrarSesion_Click(object sender, EventArgs e) { BaseSession.Logout(); Response.Redirect("~/Layout/Login.aspx", false); }
public ActionResult Logout() { #region [ Add data into language combo box ] if (TempData.Keys.Contains(StaticContent.LanguageKey)) { LanguageKey temp = (LanguageKey)(TempData[StaticContent.LanguageKey]); initLanguageComboBox(temp.ToString()); } else { initLanguageComboBox(); } #endregion string str_IpAddr = this.HttpContext.Request.UserHostAddress; string str_HostName = this.HttpContext.Request.UserHostName; string str_MsgBoxTitle = MultilingualHelper.GetStringFromResource("LoginScreentTitle"); string strError = MultilingualHelper.GetStringFromResource("I003"); string str_SaveAuthorizedHistory_Error = ""; if (ViewData.ContainsKey(Bootstrapper.UserClientSessionKey.ToString())) { ClientSessionInfo entity_ClientSessionInfo = null; if (ViewData.ContainsKey(Bootstrapper.UserClientSessionKey.ToString())) { entity_ClientSessionInfo = (ClientSessionInfo)ViewData[Bootstrapper.UserClientSessionKey.ToString()]; } if (entity_ClientSessionInfo != null) { BaseSession entity_BaseSession = entity_SessionWUserInfo; if (entity_BaseSession != null) { WebCommonHelper webCommonHelper = new WebCommonHelper(); webCommonHelper.CallWCFHelper(this, (entity_WCFAuthInfoVM) => { WCFReturnResult entity = loginUserMgtHelper.Value.Logout(entity_WCFAuthInfoVM); if (!entity.IsSuccess) { str_SaveAuthorizedHistory_Error = string.Join("<br/>", entity.StrList_Error.ToArray()); } else { MVCSessionMgt.RemoveServerSideSession(entity_BaseSession); } }); } if (ViewData.ContainsKey(Bootstrapper.UserClientSessionKey.ToString())) { ViewData.Remove(Bootstrapper.UserClientSessionKey.ToString()); } if (TempData.ContainsKey(Bootstrapper.UserClientSessionKey.ToString())) { TempData.Remove(Bootstrapper.UserClientSessionKey.ToString()); } } } if (!string.IsNullOrWhiteSpace(str_SaveAuthorizedHistory_Error)) { MsgInfo errorMsgInfo = new MsgInfo(); errorMsgInfo.MsgTitle = str_MsgBoxTitle; errorMsgInfo.MsgDesc = str_SaveAuthorizedHistory_Error; errorMsgInfo.MsgType = MessageType.ValidationError; ViewBag.ActionMessage = errorMsgInfo; TempData[ActionMessageKey] = errorMsgInfo; } else { MsgInfo errorMsgInfo = new MsgInfo(); errorMsgInfo.MsgTitle = str_MsgBoxTitle; errorMsgInfo.MsgDesc = strError; errorMsgInfo.MsgType = MessageType.Success; ViewBag.ActionMessage = errorMsgInfo; TempData[ActionMessageKey] = errorMsgInfo; } return(View("Index")); }
public LUSerLoginResult Login(LoginUserVM entityInst, string str_Language, string str_IpAdd, string str_HostName) { try { LUSerLoginResult returnResult = new LUSerLoginResult(); SysParmRespository entityRepository = new SysParmRespository(); StaticContent.SystemInfoInst = entityRepository.RetrieveSystemInfo(); LanguageKey languageKey_Input = LanguageKey.en; Enum.TryParse <LanguageKey>(str_Language, out languageKey_Input); // Login Name cannot be empty if (string.IsNullOrWhiteSpace(entityInst.LoginName)) { string str_E001 = MultilingualHelper.GetStringFromResource(languageKey_Input, "E001"); str_E001 = string.Format(str_E001, MultilingualHelper.GetStringFromResource(languageKey_Input, "LoginName")); returnResult.StrList_Error.Add(str_E001); } // Login Password cannot be empty if (string.IsNullOrWhiteSpace(entityInst.LoginPwd)) { string str_E001 = MultilingualHelper.GetStringFromResource(languageKey_Input, "E001"); str_E001 = string.Format(str_E001, MultilingualHelper.GetStringFromResource(languageKey_Input, "LoginPwd")); returnResult.StrList_Error.Add(str_E001); } if (!string.IsNullOrWhiteSpace(entityInst.LoginName) && !string.IsNullOrWhiteSpace(entityInst.LoginPwd)) { string str_E008 = MultilingualHelper.GetStringFromResource(languageKey_Input, "E008"); str_E008 = string.Format(str_E008, MultilingualHelper.GetStringFromResource(languageKey_Input, "LoginName"), MultilingualHelper.GetStringFromResource(languageKey_Input, "LoginPwd")); string str_E009 = MultilingualHelper.GetStringFromResource(languageKey_Input, "E009"); string str_E018 = MultilingualHelper.GetStringFromResource(languageKey_Input, "E018"); CoolPrivilegeControlContext dbContext = CoolPrivilegeControlContext.CreateContext(); LoginUserRespository loginUserRespo = new LoginUserRespository(dbContext, null); LoginUserVM entityVM_exist = loginUserRespo.GetLoginUserInfo(entityInst.LoginName); if (entityVM_exist != null) { PwdPolicy pwdPolicy = new PwdPolicy(); if (!entityVM_exist.Status.HasValue || entityVM_exist.Status.Value == 2) { returnResult.StrList_Error.Add(str_E018); } else if (entityVM_exist.Status.HasValue && entityVM_exist.Status.Value == 3) { returnResult.StrList_Error.Add(str_E018); } else { if (entityVM_exist.LoginPwd == pwdPolicy.GetMD5(entityInst.LoginPwd)) { DateTime?dt_LastPwdMDT = entityVM_exist.LastPwdMDT; entityVM_exist.FailCount = 0; entityVM_exist.Status = 1; entityVM_exist.LastLoginDT = DateTime.Now; entityInst.LastPwdMDT = entityVM_exist.LastPwdMDT; List <string> strList_UpdateLastLoginDt_Error = new List <string>(); loginUserRespo.UpdateLastLoginDt(entityVM_exist, languageKey_Input, ref strList_UpdateLastLoginDt_Error); if (strList_UpdateLastLoginDt_Error.Count > 0) { foreach (var item in strList_UpdateLastLoginDt_Error) { returnResult.StrList_Error.Add(item); } } else { AuthorizedHistoryRespository authorityHistoryRespos = new AuthorizedHistoryRespository(dbContext, entityVM_exist.ID); string str_SaveAuthorizedHistory_Error = ""; //Create Login History authorityHistoryRespos.Create(new AuthorizedHistoryVM(), languageKey_Input, out str_SaveAuthorizedHistory_Error); if (!string.IsNullOrWhiteSpace(str_SaveAuthorizedHistory_Error)) { returnResult.StrList_Error.Add(str_SaveAuthorizedHistory_Error); } else { string sessionKey = Guid.NewGuid().ToString(); BaseSession entity_BaseSession = new BaseSession(); entity_BaseSession.ID = entityVM_exist.ID; entity_BaseSession.SessionKey = sessionKey; entity_BaseSession.IpAddress = str_IpAdd; entity_BaseSession.LastOperationDt = DateTime.Now; WCFAuthInfoVM entity_WCFAuthInfoVM = new WCFAuthInfoVM(str_IpAdd, str_HostName, "", "", "", "", ""); WCFSesssionPolicy wcfPolicy = new WCFSesssionPolicy(); wcfPolicy.StoreWCFSession(entity_WCFAuthInfoVM, entity_BaseSession); #region [ Set Client Authorized Info ] SessionWUserInfo entity_SessionWUserInfo = loginUserRespo.GetLoginUserAccRight(entity_BaseSession.ID); if (entity_SessionWUserInfo != null) { entity_SessionWUserInfo.SessionKey = Guid.NewGuid().ToString(); entity_SessionWUserInfo.IpAddress = entity_WCFAuthInfoVM.IpAddress; entity_SessionWUserInfo.LastOperationDt = DateTime.Now; } #endregion returnResult.Entity_SessionWUserInfo = entity_SessionWUserInfo; if (entityVM_exist.LastPwdMDT.HasValue) { returnResult.IsPWDExpire = entityVM_exist.LastPwdMDT.Value.AddDays(((SystemInfoVM)StaticContent.SystemInfoInst).Password_ExpireDays) <= DateTime.Now.Date; } returnResult.Str_ServerToken = entity_WCFAuthInfoVM.WCFAuthorizedKey; } } } else { List <string> strList_UpdateFailCount_Error = new List <string>(); loginUserRespo.UpdateFailCount(entityVM_exist, languageKey_Input, ref strList_UpdateFailCount_Error); returnResult.StrList_Error.Add(str_E008); if (strList_UpdateFailCount_Error.Count > 0) { foreach (var item in strList_UpdateFailCount_Error) { returnResult.StrList_Error.Add(item); } } } } } else { returnResult.StrList_Error.Add(str_E008); } } return(returnResult); } catch (Exception ex) { throw new FaultException <WCFErrorContract>(new WCFErrorContract(ex), ex.Message); } }
public static NXObjectManager GetObjectManager(this BaseSession obj) { return(null); }
public static void AddSession(BaseSession session) { NewSessions.Enqueue(session); }