Re: New to Classes, please help.



OK, so i think i got it. My code is below. It appears to work great, the
user object is saved in the user's session state. Check out the code for
home.aspx. Will I have to thos first 2 lines every time? Can a class pull
data from a session automatically, so all i would have to do is Imports
app.User and then in my script just call the FullName property? Know what I
mean?


*****
in User.vb
Imports System.Configuration
Imports System.Data.SqlClient


Public Class User
Private sqlConn As String =
ConfigurationSettings.AppSettings("ConnectionString")
Private _firstname As String
Private _lastname As String
Private _username As String
Private _password As String


Public Function Login() As Boolean

_username = Replace(_username, "'", "''")
_password = Replace(_password, "'", "''")

Dim sqlQry As String = "cp_GetUser '" & _username & "'"

Dim myConnection As New SqlConnection(sqlConn)
myConnection.Open()
Dim myCommand As New SqlCommand(sqlQry, myConnection)

Dim rec As SqlDataReader
rec = myCommand.ExecuteReader()

If Not rec.Read Then
Login = False
Else
If _password = rec("strPassword") Then
_firstname = rec("strFirstName")
_lastname = rec("strLastName")
_password = "none"
Login = True
End If
End If
End Function

Public Property FirstName() As String
Get
Return _firstname
End Get
Set(ByVal Value As String)
_firstname = Value
End Set
End Property

Public Sub New()

End Sub

Public Property LastName() As String
Get
Return _lastname
End Get
Set(ByVal Value As String)
_lastname = Value
End Set
End Property

Public ReadOnly Property FullName() As String
Get
Return _firstname & " " & _lastname
End Get
End Property

Public ReadOnly Property FullNameRev() As String
Get
Return _lastname & ", " & _firstname
End Get
End Property


Public Property UserName() As String
Get
Return _username
End Get
Set(ByVal Value As String)
_username = Value
End Set
End Property

Public Property Password() As String
Get
Return _password
End Get
Set(ByVal Value As String)
_password = Value
End Set
End Property
End Class

*****
in default.aspx
Dim usr As New User
usr.UserName = txtusername.Text
usr.Password = txtpassword.Text

If Not usr.Login() Then
lblStatus.Text = "Unsuccessful. Please try again.<br>" &
usr.UserName
Else
Session("UserObj") = usr
Response.Redirect("home.aspx")
End If

*****
in home.aspx
1 Dim usr As User
2 usr = Session("UserObj")
3 lblStatus.Text = "Welcome " & usr.FullName & "<br>Fullnamerev " &
usr.FullNameRev



Thanks!!




"David Lozzi" <dlozzi@(remove)delphi-ts.com> wrote in message
news:OWp7wiVNFHA.2580@xxxxxxxxxxxxxxxxxxxxxxx
> Hmm.. OK.
>
> I'm following you for the most part in your sample, but once it is in the
> Session var, how do I reference it again somewhere else?
>
> Thanks,
>
> David Lozzi
>
>
> "Peter MacMillan" <peter@xxxxxxxxxxxxx> wrote in message
> news:A5WdnXGT8L2k3dffRVn-sA@xxxxxxxxxxxxx
>> David Lozzi wrote:
>>> Howdy,
>>>
>>> I'm new to classes. Below is my class User. (is this a reserved
>>> namespace or class?) It works great, kind of. If I specify the username
>>> and password, the correct firstname and lastname are returned. For
>>> example, username dlozzi, password fun. It returns David Lozzi as full
>>> name. If I login as someone else on another computer, say username
>>> dsmith and password fun2, the second computer displays the correct
>>> fullname. HOWEVER if I refresh the page on the first computer where I
>>> logged in under dlozzi, the information is now dsmith's info. I believe
>>> I am just missing one small piece, but I just cannot find it. Should I
>>> be using Session states along with classes?
>>>
>>> Thanks!
>>>
>>
>>
>> Your problem is coming from all of your methods and properties being
>> shared. I'm not sure how to explain this without going all-out on OO
>> methodology... "shared" means there is only one of that thing for the
>> class.
>>
>> You're right to have the login method (method is an OO word for
>> procedure/function).
>>
>> You want something like:
>>
>> Public Class User
>> Private m_username As String
>>
>> Public Sub New()
>> End Sub
>>
>> Public Property Username() As String
>> Get
>> Return m_username
>> End Get
>> Set(ByVal value As String)
>> m_username = value
>> End Set
>> End Property
>>
>> Public Shared Function Login(ByVal username As String) As User
>>
>> Dim result As User
>> result = new User()
>> result.Username = username
>> return result
>>
>> End Function
>> End Class
>>
>>
>> (I don't guarantee that the above will work because I just typed it out
>> in my newsreader. It should show you what needs to be done).
>>
>> Now from whereever you're loging them in, you call the Login function to
>> get a User object. You can then store that User into the Session (say,
>> put it in Session("UserObject") or something like that.
>>
>> --
>> Peter MacMillan
>> e-mail/msn: peter@xxxxxxxxxxxxx icq: 1-874-927
>>
>> GCS/IT/L d-(-)>-pu s():(-) a- C+++(++++)>$ UL>$ P++ L+ E-(-) W++(+++)>$ N
>> o w++>$ O !M- V PS PE Y+ t++ 5 X R* tv- b++(+) DI D+(++)>$ G e++ h r--
>> y(--)
>
>


.



Relevant Pages

  • Re: New to Classes, please help.
    ... Session var, how do I reference it again somewhere else? ... >> username dlozzi, password fun. ... >> login as someone else on another computer, ... > Public Property UsernameAs String ...
    (microsoft.public.dotnet.framework.aspnet)
  • Re: creating a username and password box
    ... Public Function UserName() As String ... Private Sub Workbook_BeforePrint ... > not able to get the excel to make decision of who is ...
    (microsoft.public.excel.programming)
  • Weird PropertyBag problem, values wont change
    ... CSession - Data storage class for a session. ... CSessions - Collection of CSession objects for all logged in users. ... Public Property Let ID(ByVal vData As String) ... Public Sub Remove ...
    (microsoft.public.vb.controls)
  • server-side JavaScript: Prototypes of built-in classes, objects and functins
    ... Session object (disk-based session variables for data persistence ... File class (manipulation of files on server, ie. open, close, read, ... //Methods Cgi.queryCgi.postCgi.anyby default return an empty string if requested var not found ...
    (comp.lang.javascript)
  • Re: com.sun.mail.smtp.SMTPAdressFailedException: 550 must be authenticated
    ... Außerdem wird javax.mail und javax.activation verwendet. ... private Folder folder; ... public MailReader(String host, String user, String passwd) ... Session session = Session.getDefaultInstance); ...
    (de.comp.lang.java)