%@ CodePage="65001" %> <% Response.Buffer = EW_RESPONSE_BUFFER %> <% Call ew_Header(False, EW_CHARSET) %> <% ' Define page object Dim login Set login = New clogin Set Page = login ' Page init processing login.Page_Init() ' Page main processing login.Page_Main() ' Global Page Rendering event (in userfn*.asp) Page_Rendering() ' Page Render event login.Page_Render() %>
<% login.ShowPageHeader() %> <% login.ShowMessage %> <% login.ShowPageFooter() If EW_DEBUG_ENABLED Then Response.Write ew_DebugMsg() %> <% ' Clean up and drop page object Call login.Page_Terminate("") Set login = Nothing %> <% ' ----------------------------------------------------------------- ' Page Class ' Class clogin ' Page ID Public Property Get PageID() PageID = "login" End Property ' Project ID Public Property Get ProjectID() ProjectID = "{C2E0748E-1E86-4CE6-B022-1F82F78C64B7}" End Property ' Page Object Name Public Property Get PageObjName() PageObjName = "login" End Property ' Page Name Public Property Get PageName() PageName = ew_CurrentPage() End Property ' Page Url Public Property Get PageUrl() PageUrl = ew_CurrentPage() & "?" End Property ' Message Public Property Get Message() Message = Session(EW_SESSION_MESSAGE) End Property Public Property Let Message(v) Dim msg msg = Session(EW_SESSION_MESSAGE) Call ew_AddMessage(msg, v) Session(EW_SESSION_MESSAGE) = msg End Property Public Property Get FailureMessage() FailureMessage = Session(EW_SESSION_FAILURE_MESSAGE) End Property Public Property Let FailureMessage(v) Dim msg msg = Session(EW_SESSION_FAILURE_MESSAGE) Call ew_AddMessage(msg, v) Session(EW_SESSION_FAILURE_MESSAGE) = msg End Property Public Property Get SuccessMessage() SuccessMessage = Session(EW_SESSION_SUCCESS_MESSAGE) End Property Public Property Let SuccessMessage(v) Dim msg msg = Session(EW_SESSION_SUCCESS_MESSAGE) Call ew_AddMessage(msg, v) Session(EW_SESSION_SUCCESS_MESSAGE) = msg End Property Public Property Get WarningMessage() WarningMessage = Session(EW_SESSION_WARNING_MESSAGE) End Property Public Property Let WarningMessage(v) Dim msg msg = Session(EW_SESSION_WARNING_MESSAGE) Call ew_AddMessage(msg, v) Session(EW_SESSION_WARNING_MESSAGE) = msg End Property ' Methods to clear message Public Sub ClearMessage() Session(EW_SESSION_MESSAGE) = "" End Sub Public Sub ClearFailureMessage() Session(EW_SESSION_FAILURE_MESSAGE) = "" End Sub Public Sub ClearSuccessMessage() Session(EW_SESSION_SUCCESS_MESSAGE) = "" End Sub Public Sub ClearWarningMessage() Session(EW_SESSION_WARNING_MESSAGE) = "" End Sub Public Sub ClearMessages() Session(EW_SESSION_MESSAGE) = "" Session(EW_SESSION_FAILURE_MESSAGE) = "" Session(EW_SESSION_SUCCESS_MESSAGE) = "" Session(EW_SESSION_WARNING_MESSAGE) = "" End Sub ' Show Message Public Sub ShowMessage() Dim hidden, html, sMessage hidden = False html = "" ' Message sMessage = Message Call Message_Showing(sMessage, "") If sMessage <> "" Then ' Message in Session, display If Not hidden Then sMessage = "" & sMessage html = html & "" & sHeader & "
" End If End Sub ' Show Page Footer Public Sub ShowPageFooter() Dim sFooter sFooter = PageFooter Call Page_DataRendered(sFooter) If sFooter <> "" Then ' Footer exists, display Response.Write "" & sFooter & "
" End If End Sub ' ----------------------- ' Validate Page request ' Public Function IsPageRequest() IsPageRequest = True End Function Dim Token Dim CheckToken Dim TokenTimeout ' Valid Post Function ValidPost() If Not CheckToken Or Not ew_IsHttpPost() Then ValidPost = True Exit Function End If If Request.Form(EW_TOKEN_NAME).Count = 0 Then ValidPost = False Exit Function End If ValidPost = ew_CheckToken(Request.Form(EW_TOKEN_NAME),TokenTimeout) End Function ' Create Token Sub CreateToken() If CheckToken And Token = "" Then Token = ew_CreateToken() gsToken = Token ' Save to global variable End If End Sub ' ----------------------------------------------------------------- ' Class initialize ' - init objects ' - open ADO connection ' Private Sub Class_Initialize() If IsEmpty(StartTimer) Then StartTimer = Timer ' Init start time ' Check Token Token = "" CheckToken = EW_CHECK_TOKEN TokenTimeout = 0 TokenTimeout = 48 * 60 * 60 ' 48 hours for login ' Initialize language object If IsEmpty(Language) Then Set Language = New cLanguage Call Language.LoadPhrases() End If ' Initialize form object Set ObjForm = Nothing ' Get resize object ew_GetResizeObj() ' Intialize page id (for backward compatibility) EW_PAGE_ID = "login" ' Open connection to the database If IsEmpty(Conn) Then Set Conn = ew_Connect("DB") End Sub ' ----------------------------------------------------------------- ' Subroutine Page_Init ' - called before page main ' - check Security ' - set up response header ' - call page load events ' Sub Page_Init() Set Security = New cAdvancedSecurity ' Global page loading event (in userfn*.asp) Page_Loading() ' Page load event, used in current page Page_Load() ' Check token If Not ValidPost() Then Response.Write Language.Phrase("InvalidPostRequest") Call Page_Terminate("") Response.End End If ' Create Token CreateToken() End Sub ' ----------------------------------------------------------------- ' Subroutine Page_Terminate ' - called when exit page ' - clean up ADO connection and objects ' - if url specified, redirect to url ' Sub Page_Terminate(url) If Request.Form("customexport")&"" = "" Then ' Page unload event, used in current page Call Page_Unload() ' Global page unloaded event (in userfn*.asp) Call Page_Unloaded() End If Dim sRedirectUrl sRedirectUrl = url Call Page_Redirecting(sRedirectUrl) Call ew_CloseConn() ' Close Connection Set Security = Nothing Set ObjForm = Nothing Set gResizeObj = Nothing ' Go to url if specified If gsExport & "" = "" Then If sRedirectUrl <> "" Then If Response.Buffer Then Response.Clear Response.Redirect sRedirectUrl End If End If End Sub ' ' Subroutine Page_Terminate (End) ' ---------------------------------------- Dim Username Dim LoginType ' ----------------------------------------------------------------- ' Page main processing ' Sub Page_Main() Dim bValidate, bValidPwd Dim sPassword Dim sLastUrl, url Dim encrypted url = Mid(ew_CurrentUrl, InStrRev(ew_CurrentUrl, "/")+1) Set Breadcrumb = New cBreadcrumb Call Breadcrumb.Add("login", "LoginPage", url, "", "", True) sLastUrl = Security.LastUrl ' Get Last Url If sLastUrl = "" Then sLastUrl = "default.asp" End If ' If session expired, show session expired message If Request.QueryString("expired") = "1" Then FailureMessage = Language.Phrase("SessionExpired") End If If IsLoggingIn() Then Username = Session(EW_SESSION_USER_PROFILE_USER_NAME) sPassword = Session(EW_SESSION_USER_PROFILE_PASSWORD) LoginType = Session(EW_SESSION_USER_PROFILE_LOGIN_TYPE) bValidPwd = Security.ValidateUser(Username, sPassword, False, False) If bValidPwd Then Session(EW_SESSION_USER_PROFILE_USER_NAME) = "" Session(EW_SESSION_USER_PROFILE_PASSWORD) = "" Session(EW_SESSION_USER_PROFILE_LOGIN_TYPE) = "" End If Else If Not Security.IsLoggedIn() Then Call Security.AutoLogin() Call Security.LoadUserLevel() ' Load user level Username = "" ' Initialize encrypted = False If Request.Form <> "" Then Username = ew_RemoveXSS(Request.Form("username")) sPassword = ew_RemoveXSS(Request.Form("password")) LoginType = LCase(ew_RemoveXSS(Request.Form("type"))) ElseIf EW_ALLOW_LOGIN_BY_URL And Request.QueryString("username").Count > 0 Then ' Setup variables Username = ew_RemoveXSS(Request.QueryString("username")) sPassword = ew_RemoveXSS(Request.QueryString("password")) LoginType = LCase(ew_RemoveXSS(Request.QueryString("type"))) encrypted = Not ew_Empty(Request.Querystring("encrypted")) End If If Username <> "" Then bValidate = ValidateForm(Username, sPassword) If Not bValidate Then FailureMessage = gsFormError End If Session(EW_SESSION_USER_LOGIN_TYPE) = LoginType ' Save user login type Session(EW_SESSION_USER_PROFILE_USER_NAME) = Username ' Save login user name Session(EW_SESSION_USER_PROFILE_LOGIN_TYPE) = LoginType ' Save login type Else If Security.IsLoggedIn() Then If FailureMessage = "" Then Page_Terminate(sLastUrl) ' Return to last accessed page End If bValidate = False ' Restore settings Username = Request.Cookies(EW_PROJECT_NAME)("username") If Request.Cookies(EW_PROJECT_NAME)("autologin") = "autologin" Then LoginType = "a" ElseIf Request.Cookies(EW_PROJECT_NAME)("autologin") = "rememberusername" Then LoginType = "u" Else LoginType = "" End If End If bValidPwd = False If bValidate Then ' Call logging in event bValidate = User_LoggingIn(Username, sPassword) If bValidate Then bValidPwd = Security.ValidateUser(Username, sPassword, False, encrypted) ' Manual login If Not bValidPwd Then If FailureMessage = "" Then FailureMessage = Language.Phrase("InvalidUidPwd") ' Invalid user id/password End If Else If FailureMessage = "" Then FailureMessage = Language.Phrase("LoginCancelled") ' Login cancelled End If End If End If If bValidPwd Then ' Write cookies If LoginType = "a" Then ' Auto login Response.Cookies(EW_PROJECT_NAME)("autologin") = "autologin" ' Set up autologin cookies Response.Cookies(EW_PROJECT_NAME)("username") = Username ' Set up user name cookies Response.Cookies(EW_PROJECT_NAME)("password") = ew_Encode(ew_Encrypt(sPassword)) ' Set up password cookies ElseIf LoginType = "u" Then ' Remember user name Response.Cookies(EW_PROJECT_NAME)("autologin") = "rememberusername" ' Set up remember user name cookies Response.Cookies(EW_PROJECT_NAME)("username") = Username ' Set up user name cookies Else Response.Cookies(EW_PROJECT_NAME)("autologin") = "" ' Clear autologin cookies End If Response.Cookies(EW_PROJECT_NAME).Expires = DateAdd("d", EW_COOKIE_EXPIRY_TIME, Now) ' Call loggedin event Call User_LoggedIn(Username) Call Page_Terminate(sLastUrl) ' Return to last accessed url ElseIf Username <> "" And sPassword <> "" Then ' Call user login error event Call User_LoginError(Username, sPassword) End If End Sub ' ----------------------------------------------------------------- ' Validate form ' Function ValidateForm(usr, pwd) ' Initialize gsFormError = "" ' Check if validation required If Not EW_SERVER_VALIDATE Then ValidateForm = True Exit Function End If If usr = "" Then Call ew_AddMessage(gsFormError, Language.Phrase("EnterUid")) End If If pwd = "" Then Call ew_AddMessage(gsFormError, Language.Phrase("EnterPwd")) End If ' Return validate result ValidateForm = (gsFormError = "") ' Call Form Custom Validate event Dim sFormCustomError sFormCustomError = "" ValidateForm = ValidateForm And Form_CustomValidate(sFormCustomError) If sFormCustomError <> "" Then Call ew_AddMessage(gsFormError, sFormCustomError) End If End Function ' Page Load event Sub Page_Load() 'Response.Write "Page Load" End Sub ' Page Unload event Sub Page_Unload() 'Response.Write "Page Unload" End Sub ' Page Redirecting event Sub Page_Redirecting(url) 'url = newurl End Sub ' Message Showing event ' typ = ""|"success"|"failure" Sub Message_Showing(msg, typ) ' Example: 'If typ = "success" Then msg = "your success message" End Sub ' Page Render event Sub Page_Render() 'Response.Write "Page Render" End Sub ' Page Data Rendering event Sub Page_DataRendering(header) ' Example: 'header = "your header" End Sub ' Page Data Rendered event Sub Page_DataRendered(footer) ' Example: 'footer = "your footer" End Sub ' User Logging In event Function User_LoggingIn(usr, pwd) If Not EW_DEBUG_ENABLED Then On Error Resume Next ' Enter your code here ' To cancel, set return value to False User_LoggingIn = True End Function ' User Logged In event Sub User_LoggedIn(usr) ' Response.Write "User Logged In" End Sub ' User Login Error event Sub User_LoginError(usr, pwd) ' Response.Write "User Login Error" End Sub ' Form Custom Validate event Function Form_CustomValidate(CustomError) 'Return error message in CustomError Form_CustomValidate = True End Function End Class %>