USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Dicas

  ASP - Active Server Page    (Miscelâneas)

Título da Dica:  Criação de Directorias Virtuais Através das ASP
Postada em 23/10/2003 por ^HEAVY-METAL^            
A criação de directorias virtuais poderá ser bastante util para alguns projectos nos quais a nossa aplicação fornece um "cantinho" para alguem que se registe na nossa Base de Dados. Ora esse mesmo cantinho poderá ser uma directoria virtual, que irá redireccionar, através do nosso IIS, para uma página especifica, com os parametros que quisermos, por exemplo o ID da pessoa ou empresa.

Chega de treta e bute lá!

Antes de mais e devido aos intervenientes, deveremos ter cuidado com a segurança, pois neste exemplo a autenticação não será feita por código, talvez num próximo artigo.

1. Teremos pois que criar um utilizador no nosso sistema (adiante referido como ZEMANEL), pertencente ao grupo dos ADMINISTRADORES, para que se concretize o nosso objectivo.

2. Agora imaginando que teremos a raiz do nosso site em c:\Inetpub\wwwroot, iremos criar uma sub-directoria chamada PROJECTOVIRTUAL na qual apenas o IUSR_nomepc(o "utilizador" do IIS), voçês mesmos e o nosso ZEMANEL terão acesso(total).

3. Agora iremos criar um directorio VIRTUAL (este o unico criado á mão) e que no nosso exemplo chamaremos mesmo VIRTUAL e que estará "direccionado para a nossa directoria PROJECTOVIRTUAL". Neste iremos ás propriedades e, no separador "Autentication methods", só iremos activar o "Integrated Windows Autentication".

Agora passo a descrever o conteudo dos ficheiros pois poderão fazer o download e testar.


Ficheiro: FORM.HTM


Apenas uma página HTML com um FORM e respectivos campos com valores que iremos usar para definir/criar os nossos virtuais; é apenas uma página para melhor identificarmos o que vamos usar. Quando se correr esta página de outro pc será necessária a validação onde iremos colocar o nosso ZEMANEL e respectiva password.

<html>
<head>
<title>Cria&ccedil;&atilde;o de direct&oacute;rios virtuais</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<form name="form1" method="post" action="faz_virtual.asp">
<table width="600" border="1" align="center">
<tr>
<td colspan="3">Identifica&ccedil;&atilde;o do VIRTUAL:</td>
</tr>
<tr>
<td width="27%">Nome aplica&ccedil;&atilde;o virtual:</td>
<td colspan="2">
<input type="text" id=aplicacao name="Aplicacao" size="30" value="meu_virtual" >
aten&ccedil;&atilde;o aos caracteres proibidos</td>
</tr>
<tr>
<td width="27%">Caminho Fisico</td>
<td colspan="2">
<input type="text" name="Path" value="C:\Inetpub\wwwroot\" size="50">
</td>
</tr>
<tr>
<td width="27%">Redireccionamento:</td>
<td colspan="2">
<input type="text" name="HttpRedirect" value="http://www.pt4free.net" size="50">
</td>
</tr>
<tr>
<td width="27%">Default Document:</td>
<td colspan="2">
<input type="text" name="DefaultDoc" value="Default.asp, Index.asp, Index.htm" size="40">
(separar por virgulas) </td>
</tr>
<tr>
<td width="27%">Direitos:</td>
<td width="27%">TRUE</td>
<td width="46%">FALSE</td>
</tr>
<tr>
<td width="27%">Script Access</td>
<td width="27%">
<input type="radio" name="AccessScript" value="True" checked>
</td>
<td width="46%">
<input type="radio" name="AccessScript" value="False">
</td>
</tr>
<tr>
<td width="27%">Access Read</td>
<td width="27%">
<input type="radio" name="AccessRead" value="True" checked>
</td>
<td width="46%">
<input type="radio" name="AccessRead" value="False">
</td>
</tr>
<tr>
<td width="27%">EnableDirBrowsing</td>
<td width="27%">
<input type="radio" name="EnableDirBrowsing" value="True">
</td>
<td width="46%">
<input type="radio" name="EnableDirBrowsing" value="False" checked>
</td>
</tr>
<tr>
<td width="27%">EnableDefaultDoc</td>
<td width="27%">
<input type="radio" name="EnableDefaultDoc" value="True" checked>
</td>
<td width="46%">
<input type="radio" name="EnableDefaultDoc" value="False">
</td>
</tr>
<tr>
<td width="27%">DirBrowseShowDate</td>
<td width="27%">
<input type="radio" name="DirBrowseShowDate" value="True" checked>
</td>
<td width="46%">
<input type="radio" name="DirBrowseShowDate" value="False">
</td>
</tr>
<tr>
<td colspan="3">'Haver&aacute; muitas mais.... </td>
</tr>
<tr align="center">
<td colspan="3">
<input type="submit" name="submete" value="Criar...">
</td>
</tr>
</table>
</form>
</body>
</html>



Ficheiro: FAZ_VIRTUAL.ASP
Página que irá trabalhar os valores submetidos pelo form.htm.

<%OPTION EXPLICIT

If Request.ServerVariables("REQUEST_METHOD")="POST" then

Dim fisico, virtual, content
Dim vErr, vRoot, vDir, vWebsvc, vClassDef, Propriedades, i, tmpCoisa

'Recolha das variaveis do form para usar na nossa função
fisico = Request.Form("Path")
virtual = Request.Form("Aplicacao")
content = Request.Form("HttpRedirect")

vErr = Cria_virtual(fisico, virtual, content)

If vErr = "" then
Response.write "<BR><BR><BR><CENTER>Directoria virtual foi criada com sucesso!!!</CENTER>"
call mostra_virtual(virtual)
Else
Response.Write vErr
End if

Else

Response.AddHeader "REFRESH", "0;URL=""form.htm"""
Response.End

End if

Function Cria_virtual(dir_fisico, dir_virtual, content_redirect)

On error resume next
'Especificar o default web site
Set vRoot = GetObject("IIS://LocalHost/W3SVC/1/Root")

'Criar Virtual Directory
'Param 1 e o nome da class
'Param 2 e o nome do objecto - Ex. "meu_virtual"
Set vDir = vRoot.Create("IIsWebVirtualDir",dir_virtual)

With vDir
'Atribuir Propriedades
.AccessRead = "true"
'Se quisermos + tarde trabalhar as applications settings então
'temos que ter atenção que o virtual tem de ter o mesmo nome que o approot e appfriendlyname
.AppRoot = "/LM/W3SVC/1/Root/" & dir_virtual
.AppFriendlyName = dir_virtual
'Caso seja Directoria fisica
.Path = dir_fisico
'Caso seja redirect para url
.HttpRedirect = content_redirect
'Haverá muitas mais....
.AccessScript = Request.Form("AccessScript")
.DefaultDoc = Request.Form("DefaultDoc")
.EnableDirBrowsing = Request.Form("EnableDirBrowsing")
.EnableDefaultDoc = Request.Form("EnableDefaultDoc")
.DirBrowseShowDate = Request.Form("DirBrowseShowDate")
End with

'Escreve na Metabase ou devolve o erro
If Err.number<> 0 then
Cria_virtual = Err.Description
Else
vDir.SetInfo
End if
End function

Sub mostra_virtual(virtual)

'Abrimos o Objecto do IIS "WebSite"
Set vWebsvc = GetObject("IIS://LocalHost/W3SVC/1")

'Verificação do respectivo através do ServerComment
' ******* SO FUNCIONA SE ESPECIFICARMOS O INDICE DO W3SVC NUM GetObject("IIS://LocalHost/W3SVC/1")
Response.Write "Referente ao site = " & vWebsvc.ServerComment & "<br>"

'Vai buscar informação de um VIRTUAL
set vRoot = vWebsvc.GetObject("IIsWebVirtualDir", "Root/" & virtual)

'Vai buscar informação da Raiz (Site principal) se quisermos
'set vRoot = vWebsvc.GetObject("IIsWebVirtualDir", "1/Root")

'Aqui recolhemos o "Schema" do IIS para podermos aceder ás suas informações
Set vClassDef = GetObject(vRoot.Schema)

'LISTA DAS PROPRIEDADES
Propriedades = vClassDef.OptionalProperties

Response.write "<table border=1>"
Response.write "<tr><th>LISTA DAS PROPRIEDADES OPCIONAIS</th>"
Response.write "<th>Valor Actual</th></tr>"

On error resume next
i=1
For Each tmpCoisa in Propriedades
Response.Write "<tr><td>("& i & ") " &_
tmpCoisa & "</td><td>" & vRoot.Get(tmpCoisa) & "</td></tr>"
i = i + 1
Next

Response.Write "</table>"

'Se correr mal....UPS
on error goto 0

End sub
%>


T+,

 


CyberWEB Network Ltda.    © Copyright 2000-2018   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página