ciao sono giorni che cerco di risolvere il problema e mems mi ha aiutato, ora però proprio perchè non è così semplice per me ho deciso di provare a risolvere il problema sfruttando il programma dw, croce e delizia, per un neofita va bene poi quando il neofita crede di sapere tutto crolla dal palco...
ho creato una pagina chiamata webservice.asp in cui effettuo il login, tra le cose ho creao una variabile di sessione per tener traccia dell'utente e nel contempo ho creato una restrizione per UserGroup. il codice è il seguente:
codice:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>

<%
' *** Validate request to log in to this site.
MM_LoginAction = Request.ServerVariables("URL")
If Request.QueryString<>"" Then MM_LoginAction = MM_LoginAction + "?" + Server.HTMLEncode(Request.QueryString)
MM_valUsername=CStr(Request.Form("UserName"))
If MM_valUsername <> "" Then
  MM_fldUserAuthorization="UserGroup"
  MM_redirectLoginSuccess="login.asp"
  MM_redirectLoginFailed="user.asp"
  MM_flag="ADODB.Recordset"
  set MM_rsUser = Server.CreateObject(MM_flag)
  MM_rsUser.ActiveConnection = MM_aaw_STRING
  MM_rsUser.Source = "SELECT UserName, Password"
  If MM_fldUserAuthorization <> "" Then MM_rsUser.Source = MM_rsUser.Source & "," & MM_fldUserAuthorization
  MM_rsUser.Source = MM_rsUser.Source & " FROM tblLogin WHERE UserName='" & Replace(MM_valUsername,"'","''") &"' AND Password='" & Replace(Request.Form("Password"),"'","''") & "'"
  MM_rsUser.CursorType = 0
  MM_rsUser.CursorLocation = 2
  MM_rsUser.LockType = 3
  MM_rsUser.Open
  If Not MM_rsUser.EOF Or Not MM_rsUser.BOF Then 
    ' username and password match - this is a valid user
    Session("MM_Username") = MM_valUsername
    If (MM_fldUserAuthorization <> "") Then
      Session("MM_UserAuthorization") = CStr(MM_rsUser.Fields.Item(MM_fldUserAuthorization).Value)
    Else
      Session("MM_UserAuthorization") = ""
    End If
    if CStr(Request.QueryString("accessdenied")) <> "" And false Then
      MM_redirectLoginSuccess = Request.QueryString("accessdenied")
    End If
    MM_rsUser.Close
    Response.Redirect(MM_redirectLoginSuccess)
  End If
  MM_rsUser.Close
  Response.Redirect(MM_redirectLoginFailed)
End If
%>
da questa pagina posso così dirigere le persone con una autorizzazione di admin ad una pagina chiamata login.asp (per ora provvisoria) e in caso autenticazione errata come admin il carooo dw spedisce ad una pagina chiamata user.asp.
naturalmente la pagina logini.asp funziona...strano fin qui mi sento bravo, fa tutto lui...
problema con la pagina user.asp...


codice:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<%
' *** Restrict Access To Page: Grant or deny access to this page
MM_authorizedUsers="user,visitor"
MM_authFailedURL="WebService.asp"
MM_grantAccess=false
If Session("MM_Username") <> "" Then
  If (false Or CStr(Session("MM_UserAuthorization"))="") Or _
         (InStr(1,MM_authorizedUsers,Session("MM_UserAuthorization"))>=1) Then
    MM_grantAccess = true
  End If
End If
If Not MM_grantAccess Then
  MM_qsChar = "?"
  If (InStr(1,MM_authFailedURL,"?") >= 1) Then MM_qsChar = "&"
  MM_referrer = Request.ServerVariables("URL")
  if (Len(Request.QueryString()) > 0) Then MM_referrer = MM_referrer & "?" & Request.QueryString()
  MM_authFailedURL = MM_authFailedURL & MM_qsChar & "accessdenied=" & Server.URLEncode(MM_referrer)
  Response.Redirect(MM_authFailedURL)
End If
%>

<%
Dim Recordset1__MMColParam
Recordset1__MMColParam = "1"
If (Session("IdUserName") <> "") Then 
  Recordset1__MMColParam = Session("IdUserName")
End If
%>
<%
Dim Recordset1
Dim Recordset1_numRows

Set Recordset1 = Server.CreateObject("ADODB.Recordset")
Recordset1.ActiveConnection = MM_aaw_STRING
Recordset1.Source = "SELECT * FROM tblDati WHERE IdUserName = '" + Replace(Recordset1__MMColParam, "'", "''") + "'"
Recordset1.CursorType = 0
Recordset1.CursorLocation = 2
Recordset1.LockType = 1
Recordset1.Open()

Recordset1_numRows = 0
%>
qui si accede se una persona è user o visitor avendo creato la variabile di sessione ho pensato funziona tutto... invece no!
nella pagina ho scritto una bellissima frase tipo:
Benvenuto: <%= Session("MM_Username") %>!

questa la vedo e se faccio la prova nella sezione test quando uno prova a vedere se tutto funuziona su dw nel momento in cui scrivo il nome dell'utente i dati si vedono, poi se però nella pagina richiamo:
<%=(Recordset1.Fields.Item("pianta").Value)%>

non è altro che un campo della tabella tblDati si pianta alla stessa riga in cui lo inserisco.
l'errore è:
Tipo di errore:
ADODB.Field (0x800A0BCD)
Il record corrente corrisponde all'inizio o alla fine del file oppure è stato eliminato. Per eseguire l'operazione richiesta è necessario disporre di un record corrente.
/aaw/Service/user.asp, line 103


Tipo di browser:
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30)

Pagina:

che fare ora?

Grazie spero di esser stato abbastanza chiaro nell'esposizione del problema...