Änderungen check der Validierung mit sql db

This commit is contained in:
ja
2021-10-27 09:20:00 +02:00
parent f0660e2b31
commit fdb1b95ade
2 changed files with 217 additions and 182 deletions

View File

@@ -41,7 +41,7 @@
// Hinweis: Das Ereignis "Session_End" wird nur ausgelöst, wenn der Modus "sessionstate"
// in der Datei "Web.config" auf "InProc" festgelegt ist. Wenn der Sitzungsmodus auf "StateServer"
// oder "SQLServer" festgelegt ist, wird das Ereignis nicht ausgelöst.
FormsAuthentication.SignOut();
Session.Remove("TokenforEmail");

View File

@@ -21,7 +21,9 @@ Partial Class ForgotPW
Dim email As String = String.Empty
Dim tokenname As String = String.Empty
Dim customerID As String = String.Empty
Dim isusrnmright As Boolean = False
Dim isCustomeridright As Boolean = False
Dim isemailright As Boolean = False
If String.IsNullOrEmpty(txtEmail.Text) = False And String.IsNullOrEmpty(txt_Username.Text) = False And String.IsNullOrEmpty(txt_CustomerID.Text) = False And String.IsNullOrEmpty(txtEmail_M.Text) = True And String.IsNullOrEmpty(txt_Username_M.Text) = True And String.IsNullOrEmpty(txt_CustomerID_M.Text) = True Then
valreqtxtusername.Enabled = True
valreqtxtEmail.Enabled = True
@@ -78,8 +80,10 @@ Partial Class ForgotPW
If check_UserName_regex.IsValid = False Then
check_UserName_regex.ForeColor = Drawing.Color.Red
check_UserName_regex.ErrorMessage = "The Username is too long."
isusrnmright = False
Else
username = txt_Username.Text
isusrnmright = True
check_UserName_regex.ForeColor = Drawing.Color.Lime
check_UserName_regex.ErrorMessage = "Valid Username has been entered."
End If
@@ -123,20 +127,29 @@ Partial Class ForgotPW
Try
If txt_Username.Text = dr("Username").ToString() AndAlso String.IsNullOrEmpty(txt_Username_M.Text) = True And String.IsNullOrEmpty(customerID) = True Then
username = txt_Username.Text
isusrnmright = True
ElseIf String.IsNullOrEmpty(txt_Username.Text) = True Then
check_UserName_regex.MatchTimeout = 3000
check_UserName_regex.ErrorMessage = "No valid Username found in out database!"
check_UserName_regex.IsValid = True
isusrnmright = False
Try
check_UserName_regex.Validate()
Catch
isusrnmright = False
End Try
End If
If (txtEmail.Text = dr("Email").ToString() AndAlso String.IsNullOrEmpty(txtEmail_M.Text) = True) And String.IsNullOrEmpty(VERAG_PROG_ALLGEMEIN.cCryptography2.Decrypt(customerID)) = True Then
email = txtEmail.Text
lblMessage.ForeColor = Color.Green
isemailright = True
lblMessage.Text = "The given e-mail exists in our database."
ElseIf String.IsNullOrEmpty(customerID) = True Then
lblMessage_M.ForeColor = Color.Red
isemailright = False
lblMessage_M.Text = "The given User does not exist in our database."
Else
lblMessage_M.ForeColor = Color.Red
isemailright = False
lblMessage_M.Text = "The given e-mail does not exist in our database."
End If
@@ -158,14 +171,14 @@ Partial Class ForgotPW
End Using
If Session.Item("TokenforEmail") = Nothing Then
tokenname = genToken(username, password, email, customerID)
tokenname = genToken(username, password, email, customerID, isusrnmright, isCustomeridright, isemailright)
Session.Add("TokenforEmail", tokenname)
Session.Add("SessID", VERAG_PROG_ALLGEMEIN.cCryptography.Encrypt(Session.SessionID))
Else
tokenname = Session.Item("TokenforEmail")
End If
If SendEmail(username, password, email, VERAG_PROG_ALLGEMEIN.cCryptography.Decrypt(tokenname), customerID) = True Then
If SendEmail(username, password, email, VERAG_PROG_ALLGEMEIN.cCryptography.Decrypt(tokenname), customerID, isusrnmright, isCustomeridright, isemailright) = True Then
'password = RandomString(New Random, 10)
If (getDateoftoken(tokenname) = True) Then
'Dim msgboxstyle = vbDefaultButton1 + vbOK
@@ -179,7 +192,7 @@ Partial Class ForgotPW
'MsgBox("Token is not valid anymore. Please generate a new one by sending a new e-mail!")
If Session.Item("TokenforEmail") = Nothing Then
tokenname = genToken(username, password, email, customerID)
tokenname = genToken(username, password, email, customerID, isusrnmright, isCustomeridright, isemailright)
Session.Add("TokenforEmail", tokenname)
Else
tokenname = Session.Item("TokenforEmail")
@@ -189,7 +202,7 @@ Partial Class ForgotPW
'MsgBox("Mail would be sent successfully!")
lblMessage.ForeColor = Color.Green
lblMessage.Text = "The password has been sent sucessfully on the given valid e-mail address."
ElseIf SendEmail(username, password, email, VERAG_PROG_ALLGEMEIN.cCryptography.Decrypt(tokenname), customerID) = True Then
ElseIf SendEmail(username, password, email, VERAG_PROG_ALLGEMEIN.cCryptography.Decrypt(tokenname), customerID, isusrnmright, isCustomeridright, isemailright) = True Then
'MsgBox("Mail would not be sent successfully!")
lblMessage.ForeColor = Color.Red
If String.IsNullOrWhiteSpace(username) = True Then
@@ -219,7 +232,9 @@ Partial Class ForgotPW
Dim email As String = String.Empty
Dim tokenname As String = String.Empty
Dim customerID As String = String.Empty
Dim isusernameright As Boolean = False
Dim isuserIDright As Boolean = False
Dim isuserEmailright As Boolean = False
'Mobil
If String.IsNullOrEmpty(txtEmail_M.Text) = False And String.IsNullOrEmpty(txt_Username_M.Text) = False And String.IsNullOrEmpty(txt_CustomerID_M.Text) = False And String.IsNullOrEmpty(txtEmail.Text) = True And String.IsNullOrEmpty(txt_Username.Text) = True And String.IsNullOrEmpty(txt_CustomerID.Text) = True Then
valreqtxtusername.Enabled = False
@@ -322,10 +337,13 @@ Partial Class ForgotPW
If (txt_CustomerID_M.Text = dr("userId").ToString() AndAlso String.IsNullOrEmpty(txt_CustomerID.Text) = True) And String.IsNullOrEmpty(VERAG_PROG_ALLGEMEIN.cCryptography2.Decrypt(customerID)) = True Then
customerID = txt_CustomerID_M.Text
lblMessage_M.ForeColor = Color.Green
isuserIDright = True
lblMessage_M.Text = "The given Customer-ID exists in our database."
Else
lblMessage_M.ForeColor = Color.Red
isuserIDright = False
lblMessage_M.Text = "The given Customer-ID does not exist in our database."
Return
End If
Catch ex As Exception
Dim Msg, Style, Title As String
@@ -336,11 +354,14 @@ Partial Class ForgotPW
Try
If (txtEmail_M.Text = dr("Email").ToString() AndAlso String.IsNullOrEmpty(txtEmail.Text) = True) And String.IsNullOrEmpty(VERAG_PROG_ALLGEMEIN.cCryptography2.Decrypt(customerID)) = True Then
email = txtEmail_M.Text
isuserEmailright = True
lblMessage_M.ForeColor = Color.Green
lblMessage_M.Text = "The given e-mail exists in our database."
Else
lblMessage_M.ForeColor = Color.Red
isuserEmailright = False
lblMessage_M.Text = "The given E-Mail does not exist in our database."
Return
End If
Catch ex As Exception
Dim Msg, Style, Title As String
@@ -352,9 +373,11 @@ Partial Class ForgotPW
If (txt_Username_M.Text = dr("Username").ToString() AndAlso String.IsNullOrEmpty(txt_Username_M.Text) = True) And String.IsNullOrEmpty(VERAG_PROG_ALLGEMEIN.cCryptography2.Decrypt(customerID)) = True Then
username = txt_Username_M.Text
lblMessage_M.ForeColor = Color.Green
isusernameright = True
lblMessage_M.Text = "The given Username exists in our database."
Else
lblMessage_M.ForeColor = Color.Red
isusernameright = False
lblMessage_M.Text = "The given Username does not exist in our database."
End If
Catch ex As Exception
@@ -369,14 +392,14 @@ Partial Class ForgotPW
End Using
If Session.Item("TokenforEmail") = Nothing Then
tokenname = genToken(username, password, email, customerID)
tokenname = genToken(username, password, email, customerID, isusernameright, isuserIDright, isuserEmailright)
Session.Add("TokenforEmail", tokenname)
Session.Add("SessID", VERAG_PROG_ALLGEMEIN.cCryptography.Encrypt(Session.SessionID))
Else
tokenname = Session.Item("TokenforEmail")
End If
If SendEmail_M(username, password, email, VERAG_PROG_ALLGEMEIN.cCryptography.Decrypt(tokenname), customerID) = True Then
If SendEmail_M(username, password, email, VERAG_PROG_ALLGEMEIN.cCryptography.Decrypt(tokenname), customerID, isusernameright, isuserIDright, isuserEmailright) = True Then
'password = RandomString(New Random, 10)
If (getDateoftoken(tokenname) = True) Then
'Dim msgboxstyle = vbDefaultButton1 + vbOK
@@ -390,7 +413,7 @@ Partial Class ForgotPW
'MsgBox("Token is not valid anymore. Please generate a new one by sending a new e-mail!")
If Session.Item("TokenforEmail") = Nothing Then
tokenname = genToken(username, password, email, customerID)
tokenname = genToken(username, password, email, customerID, isusernameright, isuserIDright, isuserEmailright)
Session.Add("TokenforEmail", tokenname)
Else
tokenname = Session.Item("TokenforEmail")
@@ -400,7 +423,7 @@ Partial Class ForgotPW
'MsgBox("Mail would be sent successfully!")
lblMessage_M.ForeColor = Color.Green
lblMessage_M.Text = "The password has been sent sucessfully on the given valid e-mail address."
ElseIf SendEmail_M(username, password, email, VERAG_PROG_ALLGEMEIN.cCryptography.Decrypt(tokenname), customerID) = True Then
ElseIf SendEmail_M(username, password, email, VERAG_PROG_ALLGEMEIN.cCryptography.Decrypt(tokenname), customerID, isusernameright, isuserIDright, isuserEmailright) = True Then
'MsgBox("Mail would not be sent successfully!")
lblMessage_M.ForeColor = Color.Red
If String.IsNullOrWhiteSpace(username) = True Then
@@ -425,7 +448,7 @@ Partial Class ForgotPW
End Try
End Sub
Function SendEmail_M(username As String, password As String, email As String, tokenname As String, userID As String) As Boolean
Function SendEmail_M(username As String, password As String, email As String, tokenname As String, userID As String, isusrnmright As Boolean, iscstmIDright As Boolean, isemailright As Boolean) As Boolean
Dim getdomianenvironment As String = String.Empty
Dim pagename As String = String.Empty
Dim ServPort As String = String.Empty
@@ -433,6 +456,7 @@ Partial Class ForgotPW
Dim Betreff As String = String.Empty
Dim htmlbody As String = String.Empty
Dim emailnr = VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA_ID.ToString
If isusrnmright = True And iscstmIDright = True AndAlso isemailright = True Then
If HttpContext.Current.Request.ServerVariables("SERVER_NAME") = "localhost" Then
'MsgBox(getdomianenvironment)
getdomianenvironment = HttpContext.Current.Request.ServerVariables("SERVER_NAME")
@@ -469,7 +493,7 @@ Partial Class ForgotPW
Try
If Session.Item("TokenforEmail") = Nothing Then
tokenname = genToken(username, password, email, userID)
tokenname = genToken(username, password, email, userID, isusrnmright, iscstmIDright, isemailright)
Session.Add("TokenforEmail", tokenname)
Else
tokenname = Session.Item("TokenforEmail").ToString()
@@ -494,7 +518,7 @@ Partial Class ForgotPW
lblMessage_M.Text = "Error02: Mail not delivered!"
'MsgBox("Error02: Mail not delivered!" & vbCrLf & "New Token has been generated.")
If Session.Item("TokenforEmail") = Nothing Then
tokenname = genToken(username, password, email, userID)
tokenname = genToken(username, password, email, userID, isusrnmright, iscstmIDright, isemailright)
Session.Add("TokenforEmail", tokenname)
Session.Add("USerID", userID)
Else
@@ -507,9 +531,12 @@ Partial Class ForgotPW
'MsgBox(Err.Number & ex.Message & ex.StackTrace.ToString) 'Falls ein Fehler auftritt wird eine MsgBox angezeigt
End Try
Return True
Else
Return False
End If
End Function
Function SendEmail(username As String, password As String, email As String, tokenname As String, userID As String) As Boolean
Function SendEmail(username As String, password As String, email As String, tokenname As String, userID As String, isusrnmright As Boolean, iscstmIDright As Boolean, isemailright As Boolean) As Boolean
Dim getdomianenvironment As String = String.Empty
Dim pagename As String = String.Empty
Dim ServPort As String = String.Empty
@@ -517,6 +544,7 @@ Partial Class ForgotPW
Dim Betreff As String = String.Empty
Dim htmlbody As String = String.Empty
Dim emailnr = VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA_ID.ToString
If isusrnmright = True And iscstmIDright = True AndAlso isemailright = True Then
If HttpContext.Current.Request.ServerVariables("SERVER_NAME") = "localhost" Then
MsgBox(getdomianenvironment)
getdomianenvironment = HttpContext.Current.Request.ServerVariables("SERVER_NAME")
@@ -553,7 +581,7 @@ Partial Class ForgotPW
Try
If Session.Item("TokenforEmail") = Nothing Then
tokenname = genToken(username, password, email, userID)
tokenname = genToken(username, password, email, userID, isusrnmright, iscstmIDright, isemailright)
Session.Add("TokenforEmail", tokenname)
Else
tokenname = Session.Item("TokenforEmail").ToString()
@@ -578,7 +606,7 @@ Partial Class ForgotPW
lblMessage.Text = "Error02: Mail not delivered!"
'MsgBox("Error02: Mail not delivered!" & vbCrLf & "New Token has been generated.")
If Session.Item("TokenforEmail") = Nothing Then
tokenname = genToken(username, password, email, userID)
tokenname = genToken(username, password, email, userID, isusrnmright, iscstmIDright, isemailright)
Session.Add("TokenforEmail", tokenname)
Session.Add("USerID", userID)
Else
@@ -592,12 +620,16 @@ Partial Class ForgotPW
lblMessage.Text = "Error12: No Token could be generated! Try to contact the admin."
End Try
Return True
Else
Return False
End If
End Function
Function genToken(username As String, password As String, email As String, CustomerID As String) As String
Function genToken(username As String, password As String, email As String, CustomerID As String, isusrnmright As Boolean, iscstmIDright As Boolean, isemailright As Boolean) As String
Dim time() As Byte = BitConverter.GetBytes(DateTime.UtcNow.ToBinary())
Dim Key() As Byte = Guid.NewGuid().ToByteArray()
Dim token As String
If isusrnmright = True And iscstmIDright = True And isemailright = True Then
Try
token = VERAG_PROG_ALLGEMEIN.cCryptography.Encrypt(Convert.ToBase64String(time.Concat(Key).ToArray()))
Return token
@@ -611,7 +643,7 @@ Partial Class ForgotPW
'If MsgBox(Msg, Style, Title).Retry Then
'genToken(username, password, email)
token = VERAG_PROG_ALLGEMEIN.cCryptography.Encrypt(Convert.ToBase64String(time.Concat(Key).ToArray()))
If SendEmail(username, password, email, token, CustomerID) = True Then
If SendEmail(username, password, email, token, CustomerID, isusrnmright, iscstmIDright, isemailright) = True Then
'MsgBox("Email could not been sent because of an internal encryption error.", vbOK + vbInformation + vbDefaultButton1, "Token-Generation Error")
Else
'MsgBox("Email has been sent successful." & vbCr & "Please check your E-Mails!", vbOK + vbInformation + vbDefaultButton1, "Token-Generation successful!")
@@ -624,11 +656,14 @@ Partial Class ForgotPW
If jetzt < wenn Then
Return "NotYet"
Else
token = genToken(username, password, email, CustomerID)
token = genToken(username, password, email, CustomerID, isusrnmright, iscstmIDright, isemailright)
Return token
'End If
End If
End Try
Else
Return String.Empty
End If
End Function
Function getDateoftoken(tokenname As String) As Boolean