Hola nuevamente... estuve checando y porque no mejor le pasas la variable y la recoges en la pagina en vez de guardarla en una session y con ello te ahorras un poquito de memoria.
por ejemplo:
ElseIf e.CommandName = "bt_opcions_perfil" Then
codigo_perfil = dgrPerfiles.DataKeys(e.Item.ItemIndex)
Response.Write("<script language='javascript'>")
Response.Write("void(window.open('menu_perfils.asp x
?perfil=+" codigo_perfil +"','men

suario','width=470, height=270'));")
Response.Write("</script>")
y en tu página menu_perfils.aspx la recoges:
request.params("perfil")
Como ves la idea..??