Fórum TimeOut - Login #6544

06/06/2009

0

Prezados;   Não estou conseguindo determinar o tempo certo em que o usuário deva ficar logado no meu sistema. Na primeira vez que o usuáro se loga ele é jogado para fora do sistema e obrigado a digitar novamente o usuário e senha.   Na minha aplicação possuo duas conexões: uma criei na mão, utilizo para fazer o login, e outra pelo Wizard que utilizo com DataSet tipado, para minhas instruções CRUD.   Abaixo segue o código da minha página de login:   ------------------------------------------------------------------------------------------------------------------------   <%@ Page Language="VB" %>
<%@ import Namespace="System.Data" %>
<%@ import Namespace="System.Data.OleDb" %>
<%@ import Namespace="System.Web.Security" %> <script runat="server">
  
   '*******************************************************
   '
   ' Login.aspx: Loga todos os usuários
   '
   '*******************************************************
  
   '*******************************************************
   ' Quando os usuários clicam em enviar, verifica se eles são
   ' usuários válidos. Se forem, loga ao sistema, e seta um cookie
   ' com seu nome de usuário, e redireciona para cobranca.aspx.
   ' Caso contrário exibe uma mensagem de erro.
   '*******************************************************    Function ValidaUsuario(nome As string, senha As string) As Boolean         Dim strSQL As String = "Select * from tbUsuario Where nome=@nome AND senha=@senha AND Cancelado='N'"
        Dim MyConn As New OleDbConnection(ConfigurationSettings.AppSettings("strConn"))
        Dim objDR As OleDbDataReader
        Dim Cmd As New OleDbCommand(strSQL, MyConn)
  
        Cmd.Parameters.Add(New OleDbParameter("@nome", nome))
        Cmd.Parameters.Add(New OleDbParameter("@senha", senha))
  
        Try             MyConn.Open()
  
            objDR = Cmd.ExecuteReader(CommandBehavior.CloseConnection)
   
            If objDR.Read() Then
                Session.Clear()
                Session("Permissao") = objDR!Permissao
                Session("Nome") = objDR!Nome
                Session("CodSede") = objDR!CodSede
                FormsAuthentication.RedirectFromLoginPage(objDR("Nome"), False)
            Else
                saida.Visible = "True"
                saida.Text = "Usuário/Senha inválido(s), tente novamente."
            End If
        Catch ex As Exception
            saida.Visible = "true"
            'Retirei a informação do código do Erro
            'saida.Text = "Ocorreu um erro durante o Login : " & "<p>" & ex.Message()
            'saida.Text = "Ocorreu um erro durante o Login, tente novamente mais tarde..."
           
            'Caso ocorra algum erro de acesso ao Banco irei exibir
            Response.Redirect("manutencao.aspx")
           
        Finally
            MyConn.Close()
        End Try
 
 End Function
 
    Sub Login(ByVal Source As Object, ByVal E As EventArgs)
        ValidaUsuario(nome.Text, senha.Text)
        nome.Text = ""
        senha.Text = ""
    End Sub     'Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
    '    ValidaUsuario(Session("Usuario"), Session("Password"))
    'End Sub
</script>
<html>
  <head>
     <title>Sistema Total</title>
      <link href="StyleSheet.css" rel="stylesheet" type="text/css" />
      </head>
    <body style="font-family: Verdana; font-size: 11px; color: #333333; background-color: #BACFF1;">
    <form id="frmLogin" runat="server" target="_parent">
    Acesso Restrito:
    <table runat="server" id="tbLogin" cellpadding="0" cellspacing="0">
        <tr runat="server">
            <td>
                <span style="font-size:11px">Usuário:</span>
                <br />
                <asp:TextBox id="nome" runat="server" Width="90px"
                    CssClass="txtusuario" />
            </td>
        </tr>
        <tr runat="server">
            <td>
                <span style="font-size:11px">Senha:</span>
                <br />
                <asp:TextBox id="senha" TextMode="password" runat="server" Width="90px"
                    CssClass="txtusuario" />
            </td>
        </tr>
    </table>
    <asp:Button id="Button1" runat="server" onClick="Login" text="Enviar"
         CssClass="btenvialogin" />
    <br />
    <asp:Label id="saida" runat="server" forecolor="Red" />
    </form>
</body>
</html>   ------------------------------------------------------------------------------------------------------------------------   Agora onde determino o TimeOut no meu WebConfig:   ------------------------------------------------------------------------------------------------------------------------   <authentication mode="Forms" >
    <forms name="frmLogim" loginUrl="login.aspx" timeout="300" path ="/" />
</authentication>   ------------------------------------------------------------------------------------------------------------------------  
Indemberge Santos

Indemberge Santos

Responder

Posts

07/06/2009

Luiz Maia

Ola Indember,   Pelo que vi em seu codigo, não é problema de timeout. Deve ser outra coisa que esta errada em sua aplicação. Segue um exemplo de uma pagina de login e o arquivo web.config que funcionam perfeitamente, de uma olhada e veja se compreende tudo:   protected void btEntrar_Click(object sender, EventArgs e) { string Usuario = tbUser.Text; string Senha = tbPass.Text; int codUsuario = Convert.ToInt32("0" + acesso.Acessar(Usuario, Senha)); if (codUsuario > 0) { DataRow drUsuario = acesso.BuscarUsuario(codUsuario); if (drUsuario != null) { Session["CodUsuario"] = drUsuario["cod_usuario"].ToString(); Session["NomUsuario"] = drUsuario["nom_usuario"].ToString(); Session["IndAdmin"] = drUsuario["ind_admin"].ToString(); FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(Usuario, cbGravarDadosCookie.Checked, 20); string ticketCripto = FormsAuthentication.Encrypt(ticket); HttpCookie cookieAutent = new HttpCookie(FormsAuthentication.FormsCookieName, ticketCripto); Response.Cookies.Add(cookieAutent); FormsAuthentication.RedirectFromLoginPage(Usuario, cbGravarDadosCookie.Checked); Response.Redirect("Administracao/Obra.aspx"); } } else { FinalizarSessao(); } }   ARQUIVO WEB.CONFIG: <authentication mode="Forms"> <forms name="Admin" loginUrl="Login.aspx" timeout="100"/> </authentication> ====================================================================== Pasta sem acesso :   <location path="Administracao"> <system.web> <authorization> <deny users="?"/> </authorization> </system.web> </location> Caso não entenda algo, me avise, ok? Abraços Att Luiz Maia
Responder

Gostei + 0

10/06/2009

Luiz Maia

Ola Indemberg, tudo bem?   Conseguiu acertar a pagina de login? Aguardo um retorno seu ok?   Abraços Att Luiz Maia
Responder

Gostei + 0

16/06/2009

Luiz Maia

Ola Indemberg,   Como não obtivemos retorno de sua soliticitação, estamos procedendo com o fechamento do chamado. Caso a dúvida ainda persista você pode reabrí-lo. Estamos a sua disposição para qualquer dúvida.   Abraços Att Luiz Maia
Responder

Gostei + 0

18/06/2009

Indemberge Santos

Luiz; Não respondi porque a situação ficou crítica, choveu de ligações.   Depois ao conversar com o Gerente de TI daqui descobrimos que o problema era no servidor onde está hospedada a aplicação.   Na quarta-feira passada foram feitos ajustes no servidor então começou a melhorar a situação.   Agora o tempo está melhor, mas mesmo assim estamos vendo para trocar de provedor.   Muito obrigado!   Indemberge
Responder

Gostei + 0

18/06/2009

Luiz Maia

Que bom que resolveram o problema. Qualquer dúvida, continamos a sua disposição.   Abraços Att Luiz Maia
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar