5 messaggi dal 05 luglio 2010
Sto cercando di fare una Classe da usare in ogni pagina per contare gli accessi ad ogni singola pagina registrando anche tutta una serie di informazioni restituite dalle variabili passate dal server (HTTP_HOST, HTTP_ADDR, ecc) userei l'oggetto Request che però funziona solo se metto il codice sotto <script runat="server"> nella pagina aspx. Ho creato però una pagina Contatore.vb che contiene il codice di una classe (Contatore) nella pagina aspx metto soltanto:

<script language="VB" runat="server">
Dim Cnt As New Contatore

Sub Page_Load(ByVal obj As Object, ByVal e As EventArgs) Handles Me.Load
IP.Text = Request.ServerVariables("REMOTE_ADDR")
Cnt.RegistraVisita()
End Sub
</script>

RegistraVisita è un metodo della mia classe.
Nel file Contatore.vb l'oggetto Request non viene riconosciuto, allora ho creato un oggetto
Dim req as HttpRequest
req viene utilizzato ma req.servervariables("qualsiasivariabile") restituisce sempre Nothing
Se scrivo Request.ServerVariables("any") mi dà errore su Request dicendo "Request non dichiarato, Non è accessibile a causa del livello di protezione"

Qualche idea ?

Grazie

Ale
I membri di classi o strutture possono essere dichiarati tramite uno dei cinque tipi di accesso disponibili. Analogamente alle classi e alle strutture, possono essere pubblici o interni. Il membro di una classe può essere dichiarato come protetto utilizzando la parola chiave protected, per indicare che è accessibile solo ai tipi derivati che utilizzano la classe come base. Combinando le parole chiave protected e internal, il membro di una classe può essere contrassegnato come interno protetto, ossia accessibile solo ai tipi derivati o ai tipi all'interno dello stesso assembly. Infine, il membro di una classe o di una struttura può essere dichiarato come privato utilizzando la parola chiave private, per indicare che l'accesso a tale membro è consentito solo alla classe o alla struttura che lo dichiara.

Fabrizio Canevali
5 messaggi dal 05 luglio 2010
E' sicuramente la risposta al mio quesito ma io non l'ho capita molto bene, per essere sinceri.

Nella mia classe che si trova nel file Contatore.vb che è salvato in App_Code:

Imports Microsoft.VisualBasic
Imports System.Web.Hosting
Imports System.Data.OleDb
Imports System.Web

Public Class Contatore
Public Sub RegistraVisita()
Qui se tento di usare Request ma mi l'errore "Request non dichiarato, Non è accessibile a causa del livello di protezione"

Allora provo:
Dim req as New HttpRequest
Ma ogni interrogazione req.servervariables("any") restituisce Nothing
End Sub
End Class

Il metodo RegistraVisita è pubblico e comunque le chiamate a Request non credo che c'entrino con il fatto se il metodo è accessibile o meno (che comunque lo è)

Alessandro
3.939 messaggi dal 28 gennaio 2003
Se ho ben capito...
hai due possibilità:

1) usi System.Web.HttpContext.Current.Request

2) passi alla procedura il parametro page

esempio

Public Sub Disconnessione(ByVal pagina As Page)
CancellaCookies()
FormsAuthentication.SignOut()
pagina.Page.Session.Abandon()
pagina.Response.Redirect(pagina.Request.ApplicationPath)
end sub

oppure

For Each key In System.Web.HttpContext.Current.Request.Form.AllKeys
*****
5 messaggi dal 05 luglio 2010
Questa: System.Web.HttpContext.Current.Request
funziona

Grazie...

Ale

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.