protected virtual void LimpaTokenAutoLogin(IRailsEngineContext ctx, IAppUser u) { Log.Info("Limpando cookie e token de auto-login para o usuário"); DefineCookieAutoLogin(null, DateTime.Today.AddDays(-10)); if (u != null) { u.AutoLoginHash = null; u.Save(); } }
/// <summary> /// Gera um token (uma string) que pode ser usada para login automático, /// e salva no registro do usuário especificado. /// </summary> /// <param name="u">O usuário para gerar ou obter o hash</param> /// <param name="novo">Se <c>true</c>, cria um novo hash, senão, retorna o hash já salvo</param> /// <param name="apenasHash">Se <c>true</c>, retorna apenas o hash, sem criar o token</param> protected virtual string ObtemTokenParaLoginAutomatico(IAppUser u, bool novo, bool apenasHash) { if (novo) { Log.InfoFormat("Gerado novo token de login automático para o usuário #{0} ({1})", u.Id, u.Login); u.AutoLoginHash = GeraHashParaLoginAutomatico(); u.Save(); } var hash = CriptografaSenha(u.AutoLoginHash + ":" + u.Login + ":" + u.Password); return(apenasHash ? (hash) : (u.Id + ":" + hash)); }
/// <summary> /// Gera um token (uma string) que pode ser usada para login automático, /// e salva no registro do usuário especificado. /// </summary> /// <param name="u">O usuário para gerar ou obter o hash</param> /// <param name="novo">Se <c>true</c>, cria um novo hash, senão, retorna o hash já salvo</param> /// <param name="apenasHash">Se <c>true</c>, retorna apenas o hash, sem criar o token</param> protected virtual string ObtemTokenParaLoginAutomatico(IAppUser u, bool novo, bool apenasHash) { if (novo) { Log.InfoFormat("Gerado novo token de login automático para o usuário #{0} ({1})", u.Id, u.Login); u.AutoLoginHash = GeraHashParaLoginAutomatico(); u.Save(); } var hash = CriptografaSenha(u.AutoLoginHash + ":" + u.Login + ":" + u.Password); return (apenasHash ? (hash) : (u.Id + ":" + hash)); }