2010-02-02 4 views
0

저는이 기능을 처음 사용합니다. 나는 4 페이지가있다. login.aspx, account.aspx, settings.aspx 및 fliers.aspx. 모두가 vb.net에서 SQL 서버 백엔드로 프로그래밍되었습니다. 이 이메일로 ("WEBUSER")를 session.item 소요 u는 볼 수한 페이지에서 다른 페이지로 이동할 때 페이지간에 변경하기 위해 세션 변수가 필요합니다. vb.net

Dim SQL As String = "SELECT * FROM table1 WHERE email='" + Me.txtUserName.Text + "' AND password='" + Me.txtPassword.Text + "' " 
ExecuteNonQuery(SQL) 
SqlCmd = New SqlCommand(SQL, SqlCnn) 
SqlDR = SqlCmd.ExecuteReader 
If SqlDR.HasRows Then 
    Do While SqlDR.Read() 
     Label1.Text = "successfully logged in" 
     Dim webUser As New webUser(SqlDR("email"), Session.Item("sqlcnn")) 
     Session.Item("webUser") = webUser 
     isValidUser = True 
    Loop 
Else 
    Label1.Text = "Failed to login" 
End If 

- 내 firstr 페이지 은 login.aspx 나는 된 .vb 페이지에서이 코드가 있습니다. 이 페이지에서는 괜찮습니다. account.aspx 인 다음 페이지에서 전자 메일을 로그인 한 사용자의 ID로 바꿔야하고 settings.aspx 페이지에서 해당 사용자의 ID를 해당 사용자의 프로필 ID로 바꿔야합니다. 이러한 모든 테이블은 백엔드에 있고 데이터를 가지고 있지만 문제는 나의 지식 부족입니다. 어떻게 세션을 다른 변수로 만들 수 있습니까?

답변

0

reiut은 인라인 SQL을 없애고 exec를 사용하는 것이 좋습니다. 명령 객체를 사용하여 저장 프로 시저와 전달 매개 변수를 조사하십시오. 암호는 일반 텍스트로 저장해서는 안됩니다.

세션의 경우 단순히 page_load 이벤트에서 변경할 수있는 변수 일뿐입니다. 예컨대

,

세션 ("인 firstName") = "존"

세션, 이름, 값 존을 갖는다. 쉽게 간단하게 재설정하여 다른 aspx 페이지에서 변경할 수 있습니다 : 다른 페이지에서

:

세션 ("FIRSTNAME") = "새벽"

를 사용해보십시오.

0

가장 좋은 방법은 실제로 @Nissan Fan에서 링크를 읽고 보안 인증을 사용하기 시작한 후 클래스 객체를 만들고 세션에 직렬화 된 클래스 객체를 저장하는 것입니다. 클래스 개체는 System.Security.Principal.GenericIdentity 클래스를 상속 받거나 최소한 IIdentity를 구현해야합니다. 그런 다음 세션에서 벗어나 캐스트하고 객체의 속성에 직접 액세스 할 수 있습니다 (사용자 이름/이메일/기타).

관련 문제