Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Sign in to follow this  
passado

[Resolvido] Permissões em Web.Config

Recommended Posts

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

Share this post


Link to post
Share on other 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="?"/>

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other sites
passado

Bem resolvi o problema o que me faltava era isto

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.