Bom dia,
O ideal para você verificar se o usuário está logado é o uso de sessão mesmo, pois nela ficará os dados básicos do usuário (nome, email, data de criação, data de login).
Agora se você quiser saber que hora ele fez log off da aplicação, eu usaria uma tabela do banco para ter um histórico sobre os acessos desse usuário.
Abs.
Dicas de programação em .net, C# e SQL - http://smcode.com.br/blog.aspx