none
FormsAuthentications ~ Controles RRS feed

  • Pergunta

  • Bom tenho algumas dúvidas sobre FormsAuthentications como:

    1) FormAuthentication.RedirectFromLoginPage("NomeDoUsuario", false);

    - Oque é esse "NomeDoUsuário" para que serve? E esse false, para que serve?

    ==

    2) Bom o usuário vai para a página de login, faz a autenticação, tudo ocorre certo e na página restrita eu gostaria de exibir essa mensagem: "Olá - NOME DO USUÁRIO -"

    - Como substituo o - NOME DO USUÁRIO - pelo nome do usuário logado?

    ==

    3) Na página Web.config em vez de dizer que tal página será a restrita, não posso dizer que uma tal PASTA será restrita? Ou seja, todos os arquivos da pasta será restrita e oque não esteja nessa pasta não seja restrito

    - Como faço isto?

    domingo, 2 de outubro de 2011 21:53

Respostas

  • André,

     

    Complementando algumas coisas:

     

    2) Bom o usuário vai para a página de login, faz a autenticação, tudo ocorre certo e na página restrita eu gostaria de exibir essa mensagem: "Olá - NOME DO USUÁRIO -"Como substituo o - NOME DO USUÁRIO - pelo nome do usuário logado?

    Na página, você poderá utilizar um controle LoginName, para exibir o nome do usuário (o nome exibido será esse seu parâmetro passado no FormAuthentication.RedirectFromLoginPage("NOME", true);


    <asp:LoginName runat="server" />
    

     

    Uma solução mais completa, para controlar a visibilidade para usuários anônimos e usuários autenticados:

     

        <asp:LoginView runat="server">
            <AnonymousTemplate>
                <asp:Label Text="Olá! " runat="server" /><asp:LoginStatus runat="server" LoginText="Entrar" />
            </AnonymousTemplate>
            <LoggedInTemplate>
                <asp:Label Text="Olá, " runat="server" /><asp:LoginName runat="server" />
            </LoggedInTemplate>
        </asp:LoginView>

     

     

     

    3) Na página Web.config em vez de dizer que tal página será a restrita, não posso dizer que uma tal PASTA será restrita? Ou seja, todos os arquivos da pasta será restrita e oque não esteja nessa pasta não seja restrito. Como faço isto?

    Acompanhe:

     

    <configuration>
      <location path="MinhaPasta">
        <system.web>
          <authorization>
            <allow users="*"/>
          </authorization>
        </system.web>
      </location>
    </configuration>

     

    Nesse exemplo, estou permitindo que qualquer usuário acesse a pasta "MinhaPasta"; Isso é definido pela tag <allow /> 

    O atributo "users" especifica que estou definindo a configuração de usuários individualmente, e o "*"  diz que todos podem vê-la. Utilizamos em nossos projetos essa configuração para imagens, javascripts, etc.

    Para restringir a pasta, podemos usar a tag <deny />, e da mesma forma, tratar os atributos ("users" por exemplo):

    <configuration>   <location path="MinhaPasta">     <system.web>       <authorization>         <deny users="?"/>       </authorization>     </system.web>   </location> </configuration>

    Aqui, estou bloqueando os usuários que não estão autenticados (definido pelo "?").

    Se quiser definir a permissão por grupos, ao invés de "users", utilize o atributo "roles".

    Para definir mais de um usuário/grupo, separe-os por vírgula:

            <deny users="usuario1,usuario2"/>

            <deny roles="grupo1,grupo2"/>

    E isso vai longe, dê uma olhada em Membership para entender melhor a utilização dessas tags.

    • Marcado como Resposta André .NET terça-feira, 11 de outubro de 2011 13:10
    sexta-feira, 7 de outubro de 2011 18:16

Todas as Respostas

  • 1A classe FormsAuthentication é usada para autenticação de formulários.
    http://msdn.microsoft.com/pt-br/library/system.web.security.formsauthentication.aspx

    2
    Sobre os parâmetros do método RedirectFromLoginPage (String, Boolean):
    Veja que este método precisa de dois parâmetros quando chamados.
    O primeiro é o login do usuário autenticado. O segundo indica se deve
    criar um cookie.
    http://msdn.microsoft.com/pt-br/library/ka5ffkce.aspx

    public static void RedirectFromLoginPage(
    	string userName,
    	bool createPersistentCookie
    )
    



    Para subistituir o nome basta informar o valor que você quer:
    Ex:

    string usuario = TextBoxUsuario.Text;
    FormAuthentication.RedirectFromLoginPage(usuario,false);
    

    3

     

     No web.config você pode configurar muitas coisas, inclusive
    quais usuários devem ter acesso a uma pasta específica.

    Bons estudos.


    --
    Marque as respostas e ajude a melhorar a busca do fórum. pcfviana@gmail.com
    terça-feira, 4 de outubro de 2011 13:53
  • André,

     

    Complementando algumas coisas:

     

    2) Bom o usuário vai para a página de login, faz a autenticação, tudo ocorre certo e na página restrita eu gostaria de exibir essa mensagem: "Olá - NOME DO USUÁRIO -"Como substituo o - NOME DO USUÁRIO - pelo nome do usuário logado?

    Na página, você poderá utilizar um controle LoginName, para exibir o nome do usuário (o nome exibido será esse seu parâmetro passado no FormAuthentication.RedirectFromLoginPage("NOME", true);


    <asp:LoginName runat="server" />
    

     

    Uma solução mais completa, para controlar a visibilidade para usuários anônimos e usuários autenticados:

     

        <asp:LoginView runat="server">
            <AnonymousTemplate>
                <asp:Label Text="Olá! " runat="server" /><asp:LoginStatus runat="server" LoginText="Entrar" />
            </AnonymousTemplate>
            <LoggedInTemplate>
                <asp:Label Text="Olá, " runat="server" /><asp:LoginName runat="server" />
            </LoggedInTemplate>
        </asp:LoginView>

     

     

     

    3) Na página Web.config em vez de dizer que tal página será a restrita, não posso dizer que uma tal PASTA será restrita? Ou seja, todos os arquivos da pasta será restrita e oque não esteja nessa pasta não seja restrito. Como faço isto?

    Acompanhe:

     

    <configuration>
      <location path="MinhaPasta">
        <system.web>
          <authorization>
            <allow users="*"/>
          </authorization>
        </system.web>
      </location>
    </configuration>

     

    Nesse exemplo, estou permitindo que qualquer usuário acesse a pasta "MinhaPasta"; Isso é definido pela tag <allow /> 

    O atributo "users" especifica que estou definindo a configuração de usuários individualmente, e o "*"  diz que todos podem vê-la. Utilizamos em nossos projetos essa configuração para imagens, javascripts, etc.

    Para restringir a pasta, podemos usar a tag <deny />, e da mesma forma, tratar os atributos ("users" por exemplo):

    <configuration>   <location path="MinhaPasta">     <system.web>       <authorization>         <deny users="?"/>       </authorization>     </system.web>   </location> </configuration>

    Aqui, estou bloqueando os usuários que não estão autenticados (definido pelo "?").

    Se quiser definir a permissão por grupos, ao invés de "users", utilize o atributo "roles".

    Para definir mais de um usuário/grupo, separe-os por vírgula:

            <deny users="usuario1,usuario2"/>

            <deny roles="grupo1,grupo2"/>

    E isso vai longe, dê uma olhada em Membership para entender melhor a utilização dessas tags.

    • Marcado como Resposta André .NET terça-feira, 11 de outubro de 2011 13:10
    sexta-feira, 7 de outubro de 2011 18:16