Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

João Fernandes dos Santos

Css deslinka ao adicionar mode=forms no web.config

Recommended Posts

Quando adiciono esse codigo no Web.config do meu projeto, o css nao funciona alguem ja encontrou um erro desse?

Aguardoo...

 

 

<authentication mode="Forms">

<forms name="adAuthCookie" loginUrl="login.aspx" defaultUrl="default.aspx" timeout="40"></forms>

</authentication>

<authorization>

<deny users="?"/>

</authorization>

<trace enabled="false" requestLimit="10" pageOutput="false" traceMode="SortByTime" localOnly="true"/>

<identity impersonate="true"/>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nunca vi nada do tipo, teste qual tag faz isso acontecer, e veja se você realmente necessita dela.

 

Abraços...

 

Conforme sugerido por você, verifiquei tag por tag e tive uma surpresa a tag que vai o css não funcionar é a seguinte:

<deny users="?"/>, ou seja a tag principal que nega o acesso a usuários não autenticados.

tirei uma referência no site do Julio de uma olhada.

http://www.juliobattisti.com.br/tutoriais/lanodecastro/formsauthentication002.asp

 

Dai coloquei no web config assim:

 

<authentication mode="Forms">

<forms name=".ASPXAUTH" protection="All" timeout="60" loginUrl="Login.aspx" />

</authentication>

<authorization>

<deny users="?" />

</authorization>

 

 

Se copio a url e tento joga-la no endereço do browser, redireciona para a página de login normalmente, até ai beleza, mas mesmo eu fazendo a autenticação no sistema ele retorna para a página de login.

resumindo agora estou com dois problemas

1) O css que não funciona com a tag <deny users="?" /> mas só quando coloco deny na propriedade, quando coloco allow ele funciona mais ai como que vou bloquear o usuário!?

2) E nao consigo acessar as páginas do sistema mesmo estando logado, ele sempre redireciona para a página de Login.

 

 

Já viu algo igual? Tem uma luz ai?

 

Cara virando os olhos aqui no Notebook, consegui resolver o problema do css, é o seguinte:

Lá no site que passei do Julio, tem uma parte que fala de dar permissao a páginas mesmo o usuário não estando autenticados ai adaptei e deu permissão no CSS

ficou assim abaixo da tag </system.web> coloquei o seguinte código:

 

<location path="css/formatacao.css">

<system.web>

<authorization>

<allow users="?" />

</authorization>

</system.web>

</location>

 

Ou seja permitir o acesso a pessoas nao autenticadas ao arquivo css, como nao tinha autenticação ele nao autorizava o uso do css.

tive que fazer isso pra todos os itens utilizados na página de login, tais como imagens, css e etc...

 

Agora só me resta o problema 2 o que pode estar acontecendo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sobre o primeiro problema é isso mesmo, você tem que autorizar as pastas/arquivos que podem ser acessados sem autenticação.

Sobre o segundo problema é necessário ver o seu código de login, o web.config verifica se existe determinado cookie.

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sobre o primeiro problema é isso mesmo, você tem que autorizar as pastas/arquivos que podem ser acessados sem autenticação.

Sobre o segundo problema é necessário ver o seu código de login, o web.config verifica se existe determinado cookie.

 

Abraços...

 

 

Ai o código do Login:

 

 

Dim acessando As New Verificar

Dim strLogin As String = txtLogin.Text

Dim strSenha As String = txtSenha.Text

'Dim teste1 As String

'Dim teste2 As String

 

 

Dim criptografando As New Criptografia

strSenha = criptografando.Crypt(strSenha)

 

 

myDr = acessando.VerificarLogin(strLogin, strSenha)

 

If myDr.HasRows <> True Then

lblTxtLoginVazia.Text = ""

lblTxtSenhaVazia.Text = ""

lblMensagem.Text = "Login ou Senha inválidos, por favor tente novamente."

txtLogin.Text = ""

Else

 

myDr.Read()

Session("nivel") = myDr("nivel")

Session("nome") = myDr("nome")

Session("ultimoAcesso") = myDr("ultimo_acesso")

Session("login") = myDr("login_usu")

'teste1 = Session("nome")

 

'Session.Remove("nome")

 

'teste2 = Session("nome")

 

AlterarDataUltimoAcesso()

 

 

If Session("nivel") = 1 Then

Response.Redirect("Administrador/AdmHome.aspx")

 

ElseIf Session("nivel") = 2 Then

Response.Redirect("Professor/profHome.aspx")

 

ElseIf Session("nivel") = 3 Then

'Cria o ticket de autenticação chamado Login

 

'O ticket possui persistência, isto é, usuário poderá voltar a página depois de fechar o browser

 

'O tempo de persistência é de 1 minuto

 

Dim ticket As New FormsAuthenticationTicket("Login", True, 1)

 

'Grava o cookie com o ticket criado

 

'É feita a criptografia deste ticket

 

Response.Cookies(".ASPXAUTH").Value = System.Web.Security.FormsAuthentication.Encrypt(ticket)

 

'Indica a data de expiração do cookie

 

Response.Cookies(".ASPXAUTH").Expires = DateTime.Now.AddMinutes(1)

 

 

Response.Redirect("Aluno/Boletim.aspx")

 

End If

 

End If

End If

End Sub

 

 

 

Nesse caso coloquei o ticket somente no ultimo if que é o usuário que estou testando.

Compartilhar este post


Link para o post
Compartilhar em outros sites

No momento de autenticar utilize o cookie desta forma:

 

Dim authTicket As New FormsAuthenticationTicket("CodigoSeuUsuario", False, 30)
Dim encryptTicket As String = FormsAuthentication.Encrypt(authTicket)
Dim authCookie As New HttpCookie(FormsAuthentication.FormsCookieName, encryptTicket)
Response.Cookies.Add(authCookie)

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui resolver da seguinte forma o meu problema:

 

no Web config ficou assim:

 

  <authentication mode="Forms">
     <forms name="AuthCookie" loginUrl="login.aspx" defaultUrl="default.aspx" timeout="40" protection="All"></forms>
   </authentication>
   <authorization>
     <deny users="?"/>
   </authorization>
   <trace enabled="false" requestLimit="10" pageOutput="false" traceMode="SortByTime" localOnly="true"/>
   <identity impersonate="true"/>

 

Mas ai estava me gerando alguns problemas de permissões, por exemplo a página de login não usuava o css, imagens etc pois como o acesso estava negado naõ permitia dai fiz os seguinte para cada item que eu queira usar coloquei:

 

<location path="nomedoarquivo.extensao">
   <system.web>
     <authorization>
       <allow users="?" />
     </authorization>
   </system.web>
 </location>

 

Se você deixar somente essas configurações no Web config sua página será redirecionada direto para a página de login, ou seja você vai se autenticar mas mesmo assim retornará para a página de login.

Inseri no código da página de login após a verificação do usuário o seguinte código:

 

                Dim iResult As Integer
                Dim authTicket As New FormsAuthenticationTicket(iResult.ToString, False, 15)
                Dim encryptTicket = FormsAuthentication.Encrypt(authTicket)
                Dim authCookie As HttpCookie = New HttpCookie(FormsAuthentication.FormsCookieName, encryptTicket)
                
                Response.Cookies.Add(authCookie)
                Session.Add("login", iResult.ToString)
                FormsAuthentication.RedirectFromLoginPage(iResult.ToString, False)

 

Segue Link que tirei como referência esses dados: http://www.macoratti.net/colab2.htm

Obrigado ao Quintelab mais uma vez. Podem fechar o tópico.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.