<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Mike &#38; Etc &#187; C Sharp</title>
	<atom:link href="http://www.mike.etc.br/categoria/c-sharp/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.mike.etc.br</link>
	<description>Entre funções e variáveis, alguns procedimentos básicos de alguém que leva a vida entre as linhas de código.</description>
	<lastBuildDate>Thu, 06 Oct 2011 12:24:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>ASP.NET FORMS Authentication</title>
		<link>http://www.mike.etc.br/programacao/aspnet-forms-authentication/</link>
		<comments>http://www.mike.etc.br/programacao/aspnet-forms-authentication/#comments</comments>
		<pubDate>Fri, 23 Jan 2009 12:12:37 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[ASP.net]]></category>
		<category><![CDATA[C Sharp]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[Tutoriais]]></category>

		<guid isPermaLink="false">http://www.diariodeumprogramador.com.br/2009/01/23/aspnet-forms-authentication/</guid>
		<description><![CDATA[Fonte: http://www.bufaloinfo.com.br/artigos/artigo1510.asp O ASP.NET, conforme mencionamos em artigos anteriores, realiza por conta própria muitas tarefas que antes tinhamos que programar manualmente. Uma destas tarefas é o controle de login. No ASP tradicional são necessários os seguintes passos para realizar o controle de login : 1) Escolher o nome de uma variável de sessão e os [...]]]></description>
			<content:encoded><![CDATA[<p>Fonte: <a title="http://www.bufaloinfo.com.br/artigos/artigo1510.asp" href="http://www.bufaloinfo.com.br/artigos/artigo1510.asp">http://www.bufaloinfo.com.br/artigos/artigo1510.asp</a></p>
<p>O ASP.NET, conforme mencionamos em artigos anteriores, realiza por conta própria muitas tarefas que antes tinhamos que programar manualmente.</p>
<p>Uma destas tarefas é o controle de login. No ASP tradicional são necessários os seguintes passos para realizar o controle de login :</p>
<p><span id="more-57"></span><br />
<!--adsense--><br />
1) Escolher o nome de uma variável de sessão e os valores que ela conterá (1 se o usuário estiver logado, por exemplo)<br />
2) Criar uma página para validar o login do usuário<br />
3) Se o login for válido, atribuir um para a variável de sessão escolhida<br />
4) Em todas as páginas, testar o valor da variável de sessão. Se o valor for diferente de 1 redirecionar o usuário para a página de login<br />
5) Ao redirecionar para a página de login deve transmitir a url da página que o usuário tentou acessar<br />
6) Após o login a página de login deverá verificar se recebeu alguma url por parâmetro e, se sim, se desviar para ela, permitindo assim que o usuário chame diretamente uma página, logue-se e acesse esta página</p>
<p>Por exemplo, se o usuário chamar o endereço : http://site/paginatexto.asp desvia-se o usuário para o endereço http://site/login.asp?url=/paginatexto.asp</p>
<p>Desta forma o usuário verá a tela de login onde poderá ser validado. Após a validação a página de login poderá utilizar o parâmetro que recebeu para desviar o usuário de volta exatamente para a página que ele havia originalmente chamado.</p>
<p>No ASP.NET a estrutura de funcionamento continua a mesma, afinal, a web não foi mudada. O que mudou é que não precisamos nós mesmos implementar todos os passos, pois o ASP.NET realiza esses passos para nós.</p>
<p>Para que o ASP.NET possa realizar o processo de autenticação para nós é primeiramente devemos informar a ele que desejamos realizar esse processo de autenticação. Essa informação é dada ao ASP.NET através de um arquivo chamado web.config. Esse arquivo é escrito em formato XML e pode ser inserido em qualquer diretório da aplicação. Ele contém configurações a nível de site que serão válidas a partir do diretório em que ele se encontra e em todos os sub-diretórios. Por isso é comum que um web.config seja sempre inserido na raiz do site.</p>
<p>Através do web.config vamos fornecer as seguintes informações :</p>
<p>- Que tipo de autenticação iremos realizar, no caso, baseada em formulário. É possível também utilizar outros tipos de autenticação, tal como a autenticação integrada com o sistema operacional, normalmente utilizada em ambientes de intranet.</p>
<p>- Qual formulário iremos utilizar para realizar a autenticação</p>
<p>- Quais usuários poderão acessar as páginas. No caso utilizaremos um simbolo para indicarmos que apenas usuários autenticados poderão acessar as páginas.</p>
<p>- O nome da variável que será utilizada para identificar o usuário logado. Aqui valem duas observações : o ASP.NET não utiliza variáveis de sessão para isso, mas sim cookies; o nome indicado não é realmente o nome, mas um sufixo para o nome.</p>
<p>Com o que mencionei até agora você já deve ter percebido o que irá ocorrer : O ASP.NET controlará o processo de autenticação automaticamente. A partir do momento que configuramos o web.config para realizar a autenticação via formulário o ASP.NET passa a verificar em todos os acessos a página se o usuário está logado ou não, verificando se o cookie de autenticação existe. Se não existir ele desviará a execução para o formulário de login que houvermos informado no web.config, transmitindo via GET a página que o usuário tentou acessar. Isso nos economiza grande trabalho de desenvolvimento.</p>
<p>Você deve ter observado que, já que está sendo utilizado um cookie ao invés de uma variável de sessão este cookie poderia ficar gravado na máquina do usuário entre uma visita e outra. A questão é : Realmente pode, se você quiser. Existem cookies temporários e cookies permanentes, os temporários são destruidos quando o browser é fechado, os permanentes são gravados em disco. O ASP.NET permite que você determine se deseja que o cookie de autenticação seja permanente ou temporário.</p>
<p>Isso é util para que você possa fornecer ao usuário a opção de lembrar suas informações de login, assim quando o usuário retorna ao site o cookie de login já encontra-se lá e consequentemente ele pode acessar as páginas sem redigitar suas informações de login. Muito cômodo e, sendo apresentado como uma opção para o usuário, ele assume os riscos.</p>
<p>No VB.NET ao criarmos um projeto o web.config já é criado para nós, precisaremos apenas alterar algumas das tags que ele possui, veja :</p>
<p><authentication mode="Forms">  </authentication></p>
<forms name="SecureWeb" loginurl="login.aspx">
</forms>
<p><authorization><br />
<deny users="?"><br />
</deny></authorization></p>
<p>Com o elemento authentication estamos determinando o tipo de autenticação que iremos utilizar (forms) e a url do formulário de autenticação e o nome do cookie de autenticação.</p>
<p>Já como o elemento authorization determinamos quais usuários podem acessar a aplicação. A ? utilizada no elemento Deny indica que deve ser negado acesso a usuário não identificados, ou seja, não logados.</p>
<p>O próximo passo é a montagem da tela de login. A tela de login precisará ter, além das caixas de usuário e senha, uma checkbox perguntando ao usuário se deseja gravar sua identificação em um cookie permanente para facilitar seu retorno ao site. Claro que implementar essa checkbox é opcional, mas é muito simples de fazer e é um conforto útil para o usuário.</p>
<p>Veja como fica a programação do botão Ok da tela de login ficaria assim :</p>
<p>Private Sub cmdLogin_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdLogin.Click<br />
If txtLogin.Text = &#8220;DENNES&#8221; AndAlso txtSenha.Text = &#8220;SENHA&#8221; Then<br />
FormsAuthentication.RedirectFromLoginPage(txtLogin.Text, chkLembrar.Checked)<br />
End If<br />
End Sub</p>
<p>Claro que nesse ponto seria feita uma busca em um banco de dados para validar o login do usuário, mas isto é apenas um exemplo da autenticação. O importante aqui é observar o funcionamento do método RedirectFromLogin page do objeto FormsAuthentication. Esse método gera o cookie identificando que o usuário encontra-se logado e redireciona o usuário para a página que ele solicitou.</p>
<p>Observe o 2o parâmetro, que determina se o cookie será permanente ou temporário. Neste exemplo estamos configurando este 2o parâmetro com o checked da checkbox inserida na tela de login. Desta forma o usuário pode optar por manter seu login registrado em cookie ou não. Se não tivessemos criado a checkbox na tela deveriamos utilizar false como default.</p>
<p>Para testar podemos criar uma ou mais páginas dentro desta aplicação e tentar chama-las diretamente. Você verá que será automaticamente desviado para a tela de login e só conseguirá fazer o acesso às demais páginas após se logar.</p>
<p>Caso você deseje que algumas páginas sejam acessíveis mesmo que o usuário não esteja logado pode criar um sub-diretório e criar um web.config separado para este sub-diretório, sem criar a exigência de autenticação.</p>
<p>Com isso, os 6 passos necessários para a montagem de uma autentiação em ASP foram reduzidos pelo ASP.NET a apenas 2 passos : A configuração do web.config e a montagem de uma tela de login.</p>
<p>Dennes Torres<br />
MCSD,MCSE,MCDBA</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mike.etc.br/programacao/aspnet-forms-authentication/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ponto-netando e cê-sharpeando&#8230;</title>
		<link>http://www.mike.etc.br/programacao/ponto-netando-e-ce-sharpeando/</link>
		<comments>http://www.mike.etc.br/programacao/ponto-netando-e-ce-sharpeando/#comments</comments>
		<pubDate>Mon, 19 Jan 2009 13:43:02 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[.Net Framework]]></category>
		<category><![CDATA[C Sharp]]></category>
		<category><![CDATA[Programação]]></category>

		<guid isPermaLink="false">http://www.diariodeumprogramador.com.br/?p=56</guid>
		<description><![CDATA[Desde que foi lançado o primeiro beta do .net framework, eu venho beiradeando essas ribanceiras e observando de longe toda a movimentação desse conceito de programação lançado pela Microsoft. A idéia é boa, mas como eu nunca fui muito fã de ASP e sempre defendi o PHP com unhas e dentes, não dei muita bola [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" style="margin: 5px; float: right;" src="http://www.dmxzone.com/downloads/images/_net_logo_2.jpg" alt="" width="150" height="100" />Desde que foi lançado o primeiro beta do .net framework, eu venho beiradeando essas ribanceiras e observando de longe toda a movimentação desse conceito de programação lançado pela Microsoft. A idéia é boa, mas como eu nunca fui muito fã de ASP e sempre defendi o PHP com unhas e dentes, não dei muita bola para o que estava acontecendo.</p>
<p>Há umas semanas atrás, fui visitar um cliente ao qual presto consultoria, e ele me mostrou um sistema que ele havia adquirido. Era um sistema de controle escolar para desktops, onde ele poderia lançar notas de alunos, registrar todo o movimento financeiro, entre muitas outras funções. Até aí nada de mais. O que me interessou foi quando ele me mostrou que tudo aquilo ainda poderia ser disponibilizado via internet. Resolvi investigar o sistema, e descobri que ele foi programado usando essa tecnologia .net. Muito interessante!</p>
<p>Pesquisei mais afundo, e então vi que a idéia da Microsoft de &#8220;<em>frameworkar</em>&#8221; o desenvolvimento desktop e web parece funcionar muito bem! O uso do .Net tira uma grande carga do ombro do programador, e torna a progamação tanto desktop, quanto web muito mais versátil!</p>
<p><img class="alignleft" style="margin: 5px; float: left;" src="http://www.linux.ime.usp.br/~cef/mac499-05/monografias/andre/figuras/csharp.jpg" alt="" width="160" height="187" />Eu analisei os prós e contras, e para alguns projetos que pretendo tocar, acredito que a solução .Net vai me ajudar bastante, já que um deles é justamente um projeto de integração entre software desktop e interface web. Eu estava pensando em utilizar Delphi para o Desktop e <a href="http://www.php.net/">PHP</a> com o <a href="http://www.codeignitier.com/">framework Code Igniter</a> para a a interface Web. Até agora, nada decidido ainda. Estou buscando agora saber mais sobre o .net, e estudando o C#. Já até consegui fazer <a href="http://www.asp.net/learn/mvc/tutorial-01-cs.aspx" target="_blank">uma lista de tarefas em C# </a>seguindo um <a href="http://www.asp.net/learn/mvc/">tutotial</a> no site <a href="http://www.asp.net/">Asp.net</a>.</p>
<p>Para me aprofundar mais, vou lançar daqui algumas semanas um projeto que já há tempos eu tenho idealizado. Será uma boa oportunidade de colocar em prática os conhecimentos adquiridos com o C# e o .net!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mike.etc.br/programacao/ponto-netando-e-ce-sharpeando/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

