Gente Hoje o Cap esta de+.assistam.Bjs.bjs... e voce?quanto nerd voce e???? Ha muito tempo que eu nao posto nada no meu blog, mas vou reiniciar este processo.Comeco com uma novidade, acabo de entrar em um desafio onde meus colegas de trabalho Rafael Ribas e Luis Eduardo e eu iremos entrar em uma odisseia de estudos para buscarmos nossa certificacao MCPD.Lancamos um blog(rumoaomcpd.blogspot.com) que sera nosso diario de bordo, onde postaremos nossas impressoes sobre os conteudos das provas necessarias para a certificacao MCTS e depois a MCPD.Visitem e acompanhem este desafio! Bom Galera,Um tempo atras tive de desenvolver uma aplicacao hibrida, que integrava o velho ASP com .NET2.0, porem como todos sabem, estas tecnologias nao compartilham as sessions, e entao? como fazer o .net ler as sessions do asp?Pra resolver isto tive de apelar para uma metodologia que usa banco de dados, vou explicar tudo, passo-a-passo logo, mas antes irei apresentar algumas caracteristicas deste projeto para que voces entendam as limitacoes que a solucao deveria respeitar.1o. O projeto se trata de um sistema modular feito em ASP.2o. Os modulos novos deveriam, mandatoriamente, sem feitos em .net VB 2.03o. O banco deve seguir a arquitetura posta no projeto inicial, que e MS-SQL 2000Depois destas noticias desanimadoras, vamo a solucao.Devo criar uma tabela no banco de dados com a seguinte modelagem:O Script para a criacao da tabela e:CREATE TABLE [dbo].[SessionTransfer] ( [IdSecao] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [Chave] [varchar] (100) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [Valor] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [Data] [datetime] NOT NULL ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]GOALTER TABLE [dbo].[SessionTransfer] ADD CONSTRAINT [DF_SessionTransfer_Data] DEFAULT (getdate()) FOR [Data]GOVamos para os codigos em ASP e .NET:Apos o sistema principal em ASP fazer a criacao das sessions que o projeto precisa, tais como permissoes de acesso, regras de hierarquia, etc, eu chamo o arquivo "sessiontransfer.asp".ATENCAO:O codigo demonstrados neste post sao apenas didaticos e nao devem ser utilizados da forma como sao apresentados, pois possuem diversas falhas de seguranca como SQL-Injection por exemplo. Caso voce queira utiliza-lo, apenas baseie sua logica neste exemplo, mas construa um codigo seguindo as condutas de boas praticas.< ! - - #include file="../_include/_abreconexao.asp" - - >< % For i = 1 to (Session.Contents.Count -1) strSql = "INSERT INTO SessionTransfer (IdSecao, Chave, Valor) VALUES ('" & strSql = strSql & Session.SessionID & "', '" & Session.Contents.Key(i) & "', '" & Session.Contents.Item(i) & "')" DBCon.Execute (strSql) Next Response.Redirect("SessionTransfer.aspx?IdSecao=" & Session.SessionID)% >Como voces percebem, este codigo varre todas as chaves de sessions da aplicacao e as envia para o banco. Apos este processo ele redireciona para o arquivo em .NET "SessionTransfer.aspx", com a devida parametrizacao de identificacao da Session.Segue o codigo do "SessionTransfer.aspx":Imports SystemImports System.DataImports System.Data.SqlClientImports System.ConfigurationImports System.CollectionsImports System.WebImports System.Web.SecurityImports System.Web.UIImports System.Web.UI.WebControlsImports System.Web.UI.WebControls.WebPartsImports System.Web.UI.HtmlControlsPartial Public Class SessionTransfer Inherits System.Web.UI.Page Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Dim objConn As SqlConnection = New SqlConnection(SqlHelper.m_strConn) Dim objCmd As SqlCommand = New SqlCommand() Dim objAdap As SqlDataAdapter = New SqlDataAdapter() Dim objDataSet As DataSet = New DataSet() Dim strIdSecao As String = Request.QueryString("IdSecao").ToString() Dim i As Integer = 0 objConn.Open() objCmd.CommandTimeout