/// <summary> /// 获取用户身价 /// </summary> /// <param name="SessionKey">用户标示</param> /// <param name="contentType">用户终端</param> /// <returns></returns> public virtual UMC.Security.Principal Authorization(string SessionKey, String contentType) { var sessionKey = Data.Utility.Guid(SessionKey, true).Value; if (sessionKey != Guid.Empty) { var session = new Configuration.Session <Security.AccessToken>(sessionKey.ToString()); if (session.Value != null) { var auth = session.Value; auth.Id = sessionKey; auth.ContentType = session.ContentType; var passDate = Data.Utility.TimeSpan(); if (auth.Timeout == 0 || (auth.ActiveTime + auth.Timeout > passDate)) { if (auth.ActiveTime < passDate - 600) { Data.Reflection.SetProperty(auth, "ActiveTime", passDate); this.Activation(auth); } return(UMC.Security.Principal.Create(auth.Identity(), auth)); } } var user = UMC.Security.Identity.Create(sessionKey, "?", String.Empty); return(UMC.Security.Principal.Create(user, Security.AccessToken.Create(user, sessionKey, contentType, 0))); } var id = UMC.Security.Identity.Create("?", String.Empty); return(UMC.Security.Principal.Create(id, Security.AccessToken.Create(id, Guid.Empty, contentType, 0))); }
/// <summary> /// 获取用户身价 /// </summary> /// <param name="SessionKey">用户标示</param> /// <param name="contentType">用户终端</param> /// <returns></returns> public virtual UMC.Security.Principal Authorization(Guid SessionKey, String contentType) { if (SessionKey != Guid.Empty) { var session = new Configuration.Session <Security.AccessToken>(SessionKey.ToString(), false); if (session.Value != null) { var auth = session.Value; auth.Id = SessionKey; auth.ContentType = session.ContentType; return(Authorization(auth, auth.Identity())); } var user = UMC.Security.Identity.Create(SessionKey, "?", String.Empty); return(UMC.Security.Principal.Create(user, Security.AccessToken.Create(user, SessionKey, contentType, 0))); } var id = UMC.Security.Identity.Create("?", String.Empty); return(UMC.Security.Principal.Create(id, Security.AccessToken.Create(id, Guid.Empty, contentType, 0))); }
/// <summary> /// 登录 /// </summary> /// <param name="Id"></param> /// <param name="tmpId"></param> /// <param name="contentType"></param> /// <param name="unqiue"></param> /// <returns></returns> public static AccessToken Login(Identity Id, Guid tmpId, string contentType, bool unqiue) { if (unqiue) { var token = Create(Id, tmpId, contentType, 0); var sesion = new Configuration.Session <UMC.Security.AccessToken>(token, token.Id.ToString()); sesion.ContentType = contentType; sesion.Commit(Id, contentType); UMC.Security.Principal.Create(Id, token); return(token); } else { return(Login(Id, tmpId, 30, contentType)); } }
/// <summary> /// 登录 /// </summary> /// <param name="user">身份</param> /// <param name="deviceId">设备Id</param> /// <param name="timeout">过期时间</param> /// <param name="deviceType">设置类型</param> /// <param name="unqiue">记录登录</param> /// <returns></returns> public static AccessToken Login(Identity user, Guid deviceId, int timeout, string deviceType, bool unqiue) { if (unqiue) { var token = Create(user, deviceId, deviceType, timeout); var sesion = new Configuration.Session <UMC.Security.AccessToken>(token, token.Id.ToString()); sesion.ContentType = deviceType; sesion.Commit(user, deviceType); UMC.Security.Principal.Create(user, token); return(token); } else { return(Login(user, deviceId, timeout, deviceType)); } }
public virtual void Activation(Security.AccessToken token) { int cuttime = UMC.Data.Utility.TimeSpan(); if (token.Timeout > 0 && ((token.ActiveTime ?? 0) + token.Timeout) < cuttime) { var at = AccessToken.Create(UMC.Security.Identity.Create(token.Id.Value, "?", "Guest"), token.Id.Value, token.ContentType, 0); var sesion = new Configuration.Session <UMC.Security.AccessToken>(at, token.Id.ToString()); sesion.ContentType = at.ContentType; sesion.Commit(token.Id.Value); return; } switch (token.Username ?? "?") { case "#": case "?": break; default: if (String.IsNullOrEmpty(token.Username) == false) { UMC.Data.Database.Instance().ObjectEntity <UMC.Data.Entities.User>() .Where.And(new UMC.Data.Entities.User { Username = token.Username }).Entities .Update(new UMC.Data.Entities.User { ActiveTime = DateTime.Now, SessionKey = token.Id.Value }); } break; } if (token.UId.HasValue) { var sesion = new Configuration.Session <UMC.Security.AccessToken>(token, token.Id.ToString()); sesion.ContentType = token.ContentType; sesion.Commit(token.UId.Value); } }
public override void Activation(Security.AccessToken token) { var sesion = new Configuration.Session <UMC.Security.AccessToken>(token, token.Id.ToString()); sesion.ContentType = token.ContentType; switch (token.Username ?? "?") { case "?": if (token.SId.HasValue) { sesion.Commit(Guid.Empty, token.SId ?? Guid.Empty); } else { sesion.Commit(Guid.Empty, token.Id ?? Guid.Empty); } break; case "#": sesion.Commit(Guid.Empty, token.Identity().Id ?? Guid.Empty); break; default: sesion.Commit(Guid.Empty, token.Identity().Id ?? Guid.Empty); UMC.Data.Database.Instance().ObjectEntity <UMC.Data.Entities.User>() .Where.And(new UMC.Data.Entities.User { Username = token.Username }).Entities .Update(new User { ActiveTime = DateTime.Now, SessionKey = token.Id.Value }); break; } }