Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

passado

[Resolvido] Permissões em Web.Config

Mensagens Recomendadas

passado

Boas pessoal estou a dar inicio a um projecto em asp.net mas tou com alguns problemas ao nivel dos logins, o meu problema é, eu tenho um formulario de login com este codigo:

Imports System.Data.SqlClient
Imports System.Data

Partial Class Default2
    Inherits System.Web.UI.Page

    Protected Sub BT_Login_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles BT_Login.Click
        If TextBoxUsername.Text.Length <= 0 And TextBoxPassword.Text.Length <= 0 Then
            LabelUser.ForeColor = Drawing.Color.Red
            LabelPass.ForeColor = Drawing.Color.Red
            LabelAviso.Text = "Dados em falta"
        ElseIf TextBoxUsername.Text.Length <= 0 Then
            LabelPass.ForeColor = Drawing.Color.Black
            LabelUser.ForeColor = Drawing.Color.Red
            LabelAviso.Text = "Dados em falta"
        ElseIf TextBoxPassword.Text.Length <= 0 Then
            LabelPass.ForeColor = Drawing.Color.Red
            LabelUser.ForeColor = Drawing.Color.Black
            LabelAviso.Text = "Dados em falta"
        Else
            LabelPass.ForeColor = Drawing.Color.Black
            LabelUser.ForeColor = Drawing.Color.Black
            LabelAviso.Text = ""
            Dim encontrou As Boolean = False
            Dim nome As String = Nothing
            Dim cn As String = ConfigurationManager.ConnectionStrings("BDConnectionString1").ConnectionString
            Dim connection As New SqlConnection(cn)
            Dim SQL As String = "SELECT * FROM TBS_Useres WHERE [username] = @username"
            Dim command As New SqlCommand(SQL, connection)
            command.Parameters.Add("@username", SqlDbType.NVarChar).Value = TextBoxUsername.Text
            connection.Open()
            Dim reader As SqlDataReader = command.ExecuteReader()
            If reader.HasRows Then
                While reader.Read()
                    Dim user As String = reader.Item("username")
                    Session("idcliente") = reader.Item("rel_cliente")
                    Dim pass As String = reader.Item("password")
                    If user = TextBoxUsername.Text And pass = TextBoxPassword.Text Then
                        encontrou = True
                    End If
                End While
            Else
                LabelAviso.Text = "Utilizador não Registado"
            End If
            connection.Close()
            connection = Nothing
            command = Nothing
            If encontrou = True Then
                FormsAuthentication.Initialize()
                LabelAviso.Text = "Aviso"
            Else
                LabelAviso.Text = "Nome de Utilizador ou Password Incorrectos"
            End If
        End If
    End Sub

End Class

Ate aqui tudo bem, consigo ir a base de dados testar os utilizadores e fazer tudo, o meu problema vem depois, este login era suposto dar acesso a uma serie de formularios contidos dentro de uma pasta "1" para isso eu tenho este codigo no web.config

<authentication mode ="Forms">
      <forms name="1" loginUrl="Login.aspx" defaultUrl="1/1.aspx" protection="All" timeout="30"></forms>
    </authentication>
  </system.web>
  <location path="1">
    <system.web>
      <authorization>
        <deny users="*" />
      </authorization>
    </system.web>
  </location>

O Problema e que el bloqueia o acesso a esses formularios mas se eu fizer login e depois tentar entrar nesse formulario ele mandame novamente para o formulario de login....

Nao sei mais que fazer

Cumprimentos

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Alheira

Isso acontece porque estás a negar o acesso a todos os utilizadores.

<deny users="*" />

Se queres só limitar os anonimos experimenta assim:

<deny users="?"/>

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
passado

Bem fiz a alteração que me disses-te eu sabia disso mas como ja mexi tanto nisto isso escapou-me, mas fazendo essa alteração o resultado e o seguinte:

1- Coloco no broswer o caminho para a pasta e mesmo sem fazer login consigo ver o que a pasta contem

2- coloco o link para uma pagina dentro dessa pasta e realmente sou redireccionado para o login, faço o login, login esse que e feito com sucesso, mas se colocar o endereço para a pagina ele redirecciona novamente para o pagina de login

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
passado

Bem resolvi o problema o que me faltava era isto

FormsAuthentication.RedirectFromLoginPage(Session("idcliente"), False)

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.