diff --git a/App_Code/TestPerformance.vb b/App_Code/TestPerformance.vb index 2e02522..cf397fe 100644 --- a/App_Code/TestPerformance.vb +++ b/App_Code/TestPerformance.vb @@ -2,7 +2,7 @@ Imports System.Diagnostics Imports Microsoft.VisualBasic Imports Konscious.Security.Cryptography - +Imports System.Threading.Tasks Public Class TestPerformance Public Shared Sub createnUsers(ByRef n As Integer) @@ -108,7 +108,6 @@ Public Class TestPerformance con.Close() End Using Next - End Using End Sub Public Shared Sub DeleteUsers() @@ -116,7 +115,7 @@ Public Class TestPerformance End Sub Public Shared finalzeit As Long - Public Shared Function TestHashrateServer(zahlint As Integer) As Byte() + Public Shared Function TestHashrateServer(zahlint As Integer) As String Dim arrzahl As New List(Of Integer) Dim arrzahl_iterats As New List(Of Integer) Dim hashbytes As New List(Of Byte()) @@ -127,11 +126,10 @@ Public Class TestPerformance Dim hashsalts As New List(Of Byte()) Dim sw1 As Stopwatch = New Stopwatch Dim sw2 As Stopwatch = New Stopwatch - Dim finalhash As Byte() For zahl As Integer = 0 To zahlint sw1.Start() - hashsalts.Add(VERAG_VARIABLES.GenerateSalt(VERAG_VARIABLES.RandomInteger(Math.Pow(2, 4), Math.Pow(2, 7)))) + hashsalts.Add(VERAG_VARIABLES.GenerateSalt(VERAG_VARIABLES.RandomInteger(Math.Pow(2, 4), Math.Pow(2, 8)))) arrzahl_iterats.Add(VERAG_VARIABLES.getiterationnumber) arrzahl.Add(zahlint) sw1.Stop() @@ -157,9 +155,60 @@ Public Class TestPerformance For Each z3 In arrzeitp3 finalarr.Add(hashbytes(z3)) Next - finalhash = finalarr.Min - finalzeit = arrzeitp3.Min + Dim finalhashstr As String = Convert.ToBase64String(finalarr.Min) + Dim ts As New TimeSpan(0, 0, 0, 0, arrzeitp3.Min) + 'Dim finlasaltstr As String = Convert.ToBase64String(hashsalts.Min) + 'Dim finalsalt As String = finlasaltstr + Dim finalitertas As String = arrzahl_iterats.Min.ToString 'Ausgabe - Return finalhash + Return "Ergebnisse:" + Environment.NewLine + Space(1) + finalhashstr + Environment.NewLine + Space(1) + Environment.NewLine + "Zeit:" + Space(1) + ts.Hours.ToString + "Stunden:" + ts.Minutes.ToString + "Min:" + ts.Seconds.ToString + "Sekunden" + ts.Milliseconds.ToString + "Millisekunden" + Environment.NewLine + "bei " + Space(1) + finalitertas + Space(1) + "Iterationen." + End Function + Public Shared Async Function TestHashrateServerAsync(zahlint As Integer) As Task(Of String) + Dim arrzahl As New List(Of Integer) + Dim arrzahl_iterats As New List(Of Integer) + Dim hashbytes As New List(Of Byte()) + Dim arrzeitp1 As New List(Of Long) + Dim arrzeitp2 As New List(Of Long) + Dim arrzeitp3 As New List(Of Long) + Dim finalarr As New List(Of Byte()) + Dim hashsalts As New List(Of Byte()) + Dim sw1 As Stopwatch = New Stopwatch + Dim sw2 As Stopwatch = New Stopwatch + + For zahl As Integer = 0 To zahlint + sw1.Start() + hashsalts.Add(VERAG_VARIABLES.GenerateSalt(VERAG_VARIABLES.RandomInteger(Math.Pow(2, 4), Math.Pow(2, 8)))) + arrzahl_iterats.Add(VERAG_VARIABLES.getiterationnumber) + arrzahl.Add(zahlint) + sw1.Stop() + arrzeitp1.Add(sw1.ElapsedMilliseconds) + sw1.Reset() + Next + Dim pw As String = "q!V64nS4" + For zahl As Integer = 0 To zahlint + sw2.Start() + hashbytes.Add(Await VERAG_VARIABLES.HashPasswordAsync(pw, hashsalts(zahl), arrzahl_iterats(zahl), arrzahl(zahl))) + sw2.Stop() + arrzeitp2.Add(sw2.ElapsedMilliseconds) + sw2.Reset() + Next + + For Each zp1 In arrzeitp1 + If arrzeitp1(zp1) < arrzeitp2(zp1) Then + arrzeitp3.Add(arrzeitp1.Item(zp1)) + Else + arrzeitp3.Add(arrzeitp2.Item(zp1)) + End If + Next + For Each z3 In arrzeitp3 + finalarr.Add(hashbytes(z3)) + Next + Dim finalhashstr As String = Convert.ToBase64String(finalarr.Min) + Dim ts As New TimeSpan(0, 0, 0, 0, arrzeitp3.Min) + 'Dim finlasaltstr As String = Convert.ToBase64String(hashsalts.Min) + 'Dim finalsalt As String = finlasaltstr + Dim finalitertas As String = arrzahl_iterats.Min.ToString + 'Ausgabe + Return "Ergebnisse:" + Environment.NewLine + Space(1) + finalhashstr + Environment.NewLine + "Salt vom Hash:" + Space(1) + Environment.NewLine + "Zeit:" + Space(1) + ts.Hours.ToString + "Stunden:" + ts.Minutes.ToString + "Min:" + ts.Seconds.ToString + "Sekunden" + ts.Milliseconds.ToString + "Millisekunden" + Environment.NewLine + "bei " + Space(1) + finalitertas + "Iterationen." End Function End Class diff --git a/App_Code/VERAG_VARIABLES.vb b/App_Code/VERAG_VARIABLES.vb index f242de5..4c5064e 100644 --- a/App_Code/VERAG_VARIABLES.vb +++ b/App_Code/VERAG_VARIABLES.vb @@ -1,6 +1,8 @@ Imports System.Security.Cryptography Imports Microsoft.VisualBasic Imports Konscious.Security.Cryptography +Imports System.Threading.Tasks + Public Class VERAG_VARIABLES Public Shared errornumb As Integer = 0 Shared Function getiterationnumber() As Integer @@ -27,6 +29,7 @@ Public Class VERAG_VARIABLES Return saltBytes 'Convert.ToBase64String(saltBytes) End Function + Public Shared Function HashPassword(password As String, salt As Byte(), nIterations As Integer, nHash As Integer) As Byte() 'Dim Argon As Argon2id = New Argon2id(Encoding.UTF8.GetBytes(password)) @@ -41,18 +44,43 @@ Public Class VERAG_VARIABLES Else Dim Argon As Argon2id = New Argon2id(Encoding.UTF8.GetBytes(VERAG_PROG_ALLGEMEIN.cCryptography3.Encrypt(password))) Argon.Salt = salt - Argon.DegreeOfParallelism = 50 + Argon.DegreeOfParallelism = 24 * (nHash / nHash * 1.03) Argon.Iterations = nIterations * VERAG_VARIABLES.RandomInteger(1, 3) Argon.MemorySize = (((nIterations * 8.485 - (nIterations * 0.56) / 1.85 * 2.28) / 8.28) + 1.024 * 416) Return Argon.GetBytes(nHash) End If + End Function + Public Shared Async Function HashPasswordAsync(password As String, salt As Byte(), nIterations As Integer, nHash As Integer) As Task(Of Byte()) + 'Dim Argon As Argon2id = New Argon2id(Encoding.UTF8.GetBytes(password)) + + If HttpContext.Current.Request.ServerVariables("SERVER_NAME") = "localhost" Then + Dim Argon As Argon2id = New Argon2id(Encoding.UTF8.GetBytes(VERAG_PROG_ALLGEMEIN.cCryptography3.Encrypt(password))) + Argon.Salt = salt + Argon.DegreeOfParallelism = 24 + Argon.Iterations = nIterations * 2 + Argon.MemorySize = (((nIterations * 4.98 - (nIterations * 1.23) / 4 * 1.5) / 1.05) + 1 * 290) + + Return Await Argon.GetBytesAsync(nHash) + Else + Dim Argon As Argon2id = New Argon2id(Encoding.UTF8.GetBytes(VERAG_PROG_ALLGEMEIN.cCryptography3.Encrypt(password))) + Argon.Salt = salt + Argon.DegreeOfParallelism = 24 * (nHash / nHash * 1.03) + Argon.Iterations = nIterations * VERAG_VARIABLES.RandomInteger(1, 3) + Argon.MemorySize = (((nIterations * 8.485 - (nIterations * 0.56) / 1.85 * 2.28) / 8.28) + 1.024 * 416) + Return Await Argon.GetBytesAsync(nHash) + End If + End Function Public Shared Function Verifyhash(ByVal passw As String, salt As Byte(), ByVal hash As Byte(), ByVal nIterations As Integer, ByVal nHash As Integer) As Boolean Dim newHash As Byte() = HashPassword(passw, salt, nIterations, nHash) Return hash.SequenceEqual(newHash) End Function + Public Shared Async Function VerifyhashAsync(ByVal passw As String, salt As Byte(), ByVal hash As Byte(), ByVal nIterations As Integer, ByVal nHash As Integer) As Task(Of Boolean) + Dim newHash As Byte() = Await HashPasswordAsync(passw, salt, nIterations, nHash) + Return hash.SequenceEqual(newHash) + End Function Public Shared Function RandomInteger(ByVal min As Integer, ByVal max As Integer) As Integer Dim rand As New RNGCryptoServiceProvider() Dim one_byte() As Byte = {0} diff --git a/Customers/Customers.master b/Customers/Customers.master index 03e7bf8..c71bf3c 100644 --- a/Customers/Customers.master +++ b/Customers/Customers.master @@ -623,8 +623,7 @@ - - + diff --git a/Customers/Default2.aspx b/Customers/Default2.aspx index eff0b3e..a63bd6b 100644 --- a/Customers/Default2.aspx +++ b/Customers/Default2.aspx @@ -80,26 +80,14 @@ Wert der Stufe(1-100) - - + + - + diff --git a/Customers/Default2.aspx.vb b/Customers/Default2.aspx.vb index e30a247..3d51371 100644 --- a/Customers/Default2.aspx.vb +++ b/Customers/Default2.aspx.vb @@ -9,32 +9,41 @@ Partial Class Customers_Default2 If Page.IsPostBack Then Page.MaintainScrollPositionOnPostBack = True - + If Not HttpContext.Current.Request.ServerVariables("SERVER_NAME") = "localhost" Then + btn_TesthashrateServer.Text = "Test hashrate of the Server!" + Else + btn_TesthashrateServer.Text = "Test hashrate of the local machine!" + End If VERAG_VARIABLES.initerrorcount() If Integer.Parse(sld_getbenchmarkheat.Value) < 10 Then - MemorySizelocal = (((nIterations * 1) * 4.68 - ((nIterations * 2) * 1.23) / 4 * 1.5) / 1.05) + 0.75 * 254 - MemorySizeProductionServ = (((nIterations * VERAG_VARIABLES.RandomInteger(1, 2)) * 7.485 - ((nIterations * VERAG_VARIABLES.RandomInteger(1, 2)) * 0.56) / 1.85 * 2.28) / 8.28) + 1.024 * 400 - randzahl = VERAG_VARIABLES.RandomInteger(VERAG_VARIABLES.RandomInteger(Math.Pow(2, 0), Math.Pow(2, 1)), Math.Pow(2, 2)) + MemorySizelocal = (((nIterations * 1) * 4.28 - ((nIterations * 2) * 1.23) / 4 * 1.5) / 1.05) + 0.75 * 354 + MemorySizeProductionServ = (((nIterations * VERAG_VARIABLES.RandomInteger(1, 2)) * 5.485 - ((nIterations * VERAG_VARIABLES.RandomInteger(1, 2)) * 0.56) / 1.85 * 2.28) / 8.28) + 1.024 * 400 + randzahl = VERAG_VARIABLES.RandomInteger(Math.Pow(2, 2), Math.Pow(2, 4)) ElseIf Integer.Parse(sld_getbenchmarkheat.Value) > 10 And Integer.Parse(sld_getbenchmarkheat.Value) < 40 Then - MemorySizelocal = (((nIterations * 2) * 4.68 - ((nIterations * 2) * 1.23) / 4 * 1.5) / 1.05) + 0.75 * 290 - MemorySizeProductionServ = (((nIterations * VERAG_VARIABLES.RandomInteger(1, 2)) * 7.485 - ((nIterations * VERAG_VARIABLES.RandomInteger(1, 2)) * 0.56) / 1.85 * 2.28) / 8.28) + 1.024 * 416 + MemorySizelocal = (((nIterations * 1.255) * 4.48 - ((nIterations * 1.12) * 1.23) / 4 * 1.5) / 1.05) + 0.75 * 390 + MemorySizeProductionServ = (((nIterations * VERAG_VARIABLES.RandomInteger(1, 2.5)) * 6.485 - ((nIterations * VERAG_VARIABLES.RandomInteger(1, 2)) * 0.56) / 1.85 * 2.28) / 8.28) + 1.024 * 516 randzahl = VERAG_VARIABLES.RandomInteger(VERAG_VARIABLES.RandomInteger(Math.Pow(2, 0), Math.Pow(2, 2)), Math.Pow(2, 4)) ElseIf Integer.Parse(sld_getbenchmarkheat.Value) > 40 And Integer.Parse(sld_getbenchmarkheat.Value) < 60 Then - MemorySizelocal = (((nIterations * 2.45) * 4.98 - ((nIterations * 1.15) * 1.23) / 4 * 1.5) / 1.05) + 0.95 * 290 - MemorySizeProductionServ = (((nIterations * VERAG_VARIABLES.RandomInteger(1, 2.32)) * 7.485 - ((nIterations * VERAG_VARIABLES.RandomInteger(1, 2.32)) * 0.56) / 1.85 * 2.28) / 7.28) + 1.024 * 416 + MemorySizelocal = (((nIterations * 1.45) * 4.98 - ((nIterations * 1.15) * 1.23) / 4 * 1.5) / 1.05) + 0.95 * 420 + MemorySizeProductionServ = (((nIterations * VERAG_VARIABLES.RandomInteger(1, 2.32)) * 7.485 - ((nIterations * VERAG_VARIABLES.RandomInteger(1, 2.32)) * 0.56) / 1.85 * 2.28) / 7.28) + 1.024 * 646 randzahl = VERAG_VARIABLES.RandomInteger(VERAG_VARIABLES.RandomInteger(Math.Pow(2, 0), Math.Pow(2, 4)), VERAG_VARIABLES.RandomInteger(Math.Pow(2, 3), Math.Pow(2, 4))) ElseIf Integer.Parse(sld_getbenchmarkheat.Value) > 60 And Integer.Parse(sld_getbenchmarkheat.Value) < 80 Then - MemorySizelocal = (((nIterations * 2.45) * 4.98 - ((nIterations * 2) * 1.23) / 4 * 1.5) / 1.05) + 1 * 290 - MemorySizeProductionServ = (((nIterations * VERAG_VARIABLES.RandomInteger(1, 2.32)) * 8.585 - ((nIterations * VERAG_VARIABLES.RandomInteger(1, 2.32)) * 0.56) / 1.85 * 2.28) / 7.28) + 1.024 * 416 + MemorySizelocal = (((nIterations * 1.85) * 4.98 - ((nIterations * 2) * 1.23) / 4 * 1.5) / 1.05) + 1 * 790 + MemorySizeProductionServ = (((nIterations * VERAG_VARIABLES.RandomInteger(1, 2.32)) * 8.585 - ((nIterations * VERAG_VARIABLES.RandomInteger(1, 2.32)) * 0.56) / 1.85 * 2.28) / 7.28) + 1.024 * 816 randzahl = VERAG_VARIABLES.RandomInteger(VERAG_VARIABLES.RandomInteger(Math.Pow(2, 4), Math.Pow(2, 5)), VERAG_VARIABLES.RandomInteger(Math.Pow(2, 5), Math.Pow(2, 7))) ElseIf Integer.Parse(sld_getbenchmarkheat.Value) > 80 And Integer.Parse(sld_getbenchmarkheat.Value) < 100 Then MemorySizelocal = (((nIterations * 2) * 4.98 - ((nIterations * 2) * 1.23) / 4 * 1.5) / 1.05) + 1 * 290 MemorySizeProductionServ = (((nIterations * VERAG_VARIABLES.RandomInteger(1, 3)) * 9.485 - ((nIterations * VERAG_VARIABLES.RandomInteger(1, 3)) * 0.56) / 1.85 * 2.28) / 8.28) + 1.024 * 416 - randzahl = VERAG_VARIABLES.RandomInteger(VERAG_VARIABLES.RandomInteger(Math.Pow(2, 5), Math.Pow(2, 6)), VERAG_VARIABLES.RandomInteger(Math.Pow(2, 6), Math.Pow(2, 7))) + randzahl = VERAG_VARIABLES.RandomInteger(VERAG_VARIABLES.RandomInteger(Math.Pow(2, 3), Math.Pow(2, 4)), VERAG_VARIABLES.RandomInteger(Math.Pow(2, 5), Math.Pow(2, 7))) End If Else Page.MaintainScrollPositionOnPostBack = False VERAG_VARIABLES.initerrorcount() + If Not HttpContext.Current.Request.ServerVariables("SERVER_NAME") = "localhost" Then + btn_TesthashrateServer.Text = "Test hashrate of the Server!" + Else + btn_TesthashrateServer.Text = "Test hashrate of the local machine!" + End If End If End Sub @@ -61,25 +70,25 @@ Partial Class Customers_Default2 End If End Sub - Protected Sub btn_TesthashrateServer_ClickAsync(sender As Object, e As EventArgs) Handles btn_TesthashrateServer.Click + Protected Async Sub btn_TesthashrateServer_ClickAsync(sender As Object, e As EventArgs) Handles btn_TesthashrateServer.Click Dim Boole As Boolean = New Boolean Dim ram As Double = Double.Parse(My.Computer.Info.TotalPhysicalMemory.ToString) - Dim pwhashresult As Byte() - If MemorySizelocal < ram And HttpContext.Current.Request.ServerVariables("SERVER_NAME") = "localhost" Then - pwhashresult = TestPerformance.TestHashrateServer(randzahl) + Dim pwhashresult As String + If MemorySizelocal <= ram - (10 * 1024) And HttpContext.Current.Request.ServerVariables("SERVER_NAME") = "localhost" Then + pwhashresult = Await TestPerformance.TestHashrateServerAsync(randzahl) Boole = True - ElseIf MemorySizeProductionServ < ram And Not HttpContext.Current.Request.ServerVariables("SERVER_NAME") = "localhost" Then - pwhashresult = TestPerformance.TestHashrateServer(randzahl) + ElseIf MemorySizeProductionServ <= ram - 2048 And Not HttpContext.Current.Request.ServerVariables("SERVER_NAME") = "localhost" Then + pwhashresult = Await TestPerformance.TestHashrateServerAsync(randzahl) Boole = True Else Boole = False End If If Boole = True AndAlso HttpContext.Current.Request.ServerVariables("SERVER_NAME") = "localhost" Then lbl_Status.ForeColor = Drawing.Color.Green - lbl_Status.Text = "Der Test wurde erfolgreich bestanden! Der Salt lautet:" + Convert.ToBase64String(pwhashresult) + System.Environment.NewLine + "der Ram betrug:" + MemorySizelocal.ToString + lbl_Status.Text = "Der Test wurde erfolgreich bestanden!" + System.Environment.NewLine + "Der Hash lautet:" + pwhashresult + System.Environment.NewLine + "der Ram betrug:" + MemorySizelocal.ToString ElseIf Boole = True AndAlso Not HttpContext.Current.Request.ServerVariables("SERVER_NAME") = "localhost" Then lbl_Status.ForeColor = Drawing.Color.Green - lbl_Status.Text = "Der Test wurde erfolgreich bestanden! Der Hash lautet:" + Convert.ToBase64String(pwhashresult) + System.Environment.NewLine + "der Ram betrug:" + MemorySizeProductionServ.ToString + lbl_Status.Text = "Der Test wurde erfolgreich bestanden!" + System.Environment.NewLine + "Der Hash lautet:" + pwhashresult + System.Environment.NewLine + "der Ram betrug:" + MemorySizeProductionServ.ToString ElseIf Boole = False AndAlso HttpContext.Current.Request.ServerVariables("SERVER_NAME") = "localhost" Then lbl_Status.ForeColor = Drawing.Color.Red lbl_Status.Text = "Test fehlgeschlagen! Es fehlen mindestens " + MemorySizelocal - ram + "Bytes RAM!" diff --git a/Customers/LKWs.aspx b/Customers/LKWs.aspx index b266c8e..3ea8ae1 100644 --- a/Customers/LKWs.aspx +++ b/Customers/LKWs.aspx @@ -108,7 +108,7 @@
- +
@@ -133,17 +133,22 @@ SDL_NrBezeichnungGültig BisKarten-Nummer +
- - - - + + + - diff --git a/Customers/LKWs.aspx.vb b/Customers/LKWs.aspx.vb index 423f80c..6db430e 100644 --- a/Customers/LKWs.aspx.vb +++ b/Customers/LKWs.aspx.vb @@ -2,6 +2,7 @@ Imports System Imports System.ComponentModel Imports System.Web.Script.Serialization +Imports System.Web.Script.Services Imports System.Web.Security Imports System.Web.Services Imports System.Web.UI.WebControls @@ -132,10 +133,10 @@ Partial Class LKWS For Each l2 In list2 Dim String2 As String = String.Empty - If IsNothing(l2.Schadstoffklasse) = False Then - Stringtemp = l2.Kategorie.ToString + If IsNothing(l2.Kategorie) = True Then + Stringtemp = "Keine Angabe" Else - Stringtemp = String.Empty + Stringtemp = l2.Kategorie.ToString End If Dim tc_SDL As TableCell = New TableCell @@ -166,7 +167,7 @@ Partial Class LKWS strtemp2 = l1.Nationalität End If - tr1.Attributes.Add("onclick", "Javascript:doPostBack('""" + tr1.Cells.Item(0).Text + """,""" + strtemp2 + """,""" + ConvertToJSON(list3) + """')") + tr1.Attributes.Add("onclick", "Javascript:doPostBack('""" + tr1.Cells.Item(0).Text + """,""" + strtemp2 + """')") cnt += 1 tbl_sidemenue.Rows.Add(tr1) Next @@ -265,8 +266,8 @@ Partial Class LKWS initcells(tblhrow, tbhc_KFZKennz, tbhc_Nat, tblhc_Verk, tblhc_Kz, tblhc_Verm, tr2, tc_KfzKennz, tc_Nationalitaet, tc_Verk, tc_KZ_An, tc_Vermerk, cnt) tr2.Attributes.Add("onclick", "Javascript:doPostBack('""" + tr2.Cells.Item(0).Text + """,""" + strtempnat + """,""" + ConvertToJSON(list3) + """')") tbl_sidemenue.Rows.Add(tr2) - cnt += 1 - Next + cnt += 1 + Next End Sub Protected Sub btn_Suchen_M_Click(sender As Object, e As EventArgs) @@ -397,7 +398,7 @@ Partial Class LKWS For Each l2 In list2 Dim String2 As String = String.Empty - If IsNothing(l2.Schadstoffklasse) = False Then + If IsNothing(l2.Kategorie) = False Then Stringtemp_M = l2.Kategorie.ToString Else Stringtemp_M = String.Empty @@ -435,37 +436,51 @@ Partial Class LKWS End Sub - Public Sub filltable2(Tbl As Table, SDLNr As String, Bezeichnung As String, GueltigBis As String, KartNr As String) - Dim tc_SDLNr As TableCell = New TableCell - Dim tc_Bezeichnung As TableCell = New TableCell - Dim tc_GueltigBis As TableCell = New TableCell - Dim tc_KartNr As TableCell = New TableCell - Dim tr As TableRow = New TableRow - tc_SDLNr.Text = SDLNr - tc_Bezeichnung.Text = Bezeichnung - tc_GueltigBis.Text = GueltigBis - tc_KartNr.Text = KartNr - tr.Cells.Add(tc_SDLNr) - tr.Cells.Add(tc_Bezeichnung) - tr.Cells.Add(tc_GueltigBis) - tr.Cells.Add(tc_KartNr) - Tbl.Rows.Add(tr) + + Public Sub filltable2(Kennzeichen As String) + Dim tbl As Table = New Table + Dim list2 As List(Of VERAG_PROG_ALLGEMEIN.cSDL) = VERAG_PROG_ALLGEMEIN.cSDL.GET_LIST_WEB_LKW(401940, Kennzeichen) + For Each l2 In list2 + Dim tc_SDLNr As TableCell = New TableCell + Dim tc_Bezeichnung As TableCell = New TableCell + Dim tc_GueltigBis As TableCell = New TableCell + Dim tc_KartNr As TableCell = New TableCell + Dim tr As TableRow = New TableRow + + tc_SDLNr.Text = l2.SDLNr.ToString + tc_Bezeichnung.Text = l2.Kategorie.ToString + tc_GueltigBis.Text = l2.GültigBis.ToString + tc_KartNr.Text = l2.KartenNr.ToString + tr.Cells.Add(tc_SDLNr) + tr.Cells.Add(tc_Bezeichnung) + tr.Cells.Add(tc_GueltigBis) + tr.Cells.Add(tc_KartNr) + tr.Attributes.Add("style", "background-color:#ff2500;color:#fff;font-weight:400;") + tbl.Rows.Add(tr) + Next End Sub - Public Sub filltable_M(Tbl As Table, SDLNr As String, Bezeichnung As String, GueltigBis As String, KartNr As String) - Dim tc_SDLNr As TableCell = New TableCell - Dim tc_Bezeichnung As TableCell = New TableCell - Dim tc_GueltigBis As TableCell = New TableCell - Dim tc_KartNr As TableCell = New TableCell - Dim tr_M As TableRow = New TableRow - tc_SDLNr.Text = SDLNr - tc_Bezeichnung.Text = Bezeichnung - tc_GueltigBis.Text = GueltigBis - tc_KartNr.Text = KartNr - tr_M.Cells.Add(tc_SDLNr) - tr_M.Cells.Add(tc_Bezeichnung) - tr_M.Cells.Add(tc_GueltigBis) - tr_M.Cells.Add(tc_KartNr) - Tbl.Rows.Add(tr_M) + + Public Sub filltable_M(Kennzeichen As String) + Dim list2 As List(Of VERAG_PROG_ALLGEMEIN.cSDL) = VERAG_PROG_ALLGEMEIN.cSDL.GET_LIST_WEB_LKW(401940, Kennzeichen) + Dim Tbl As New Table + For Each l2 In list2 + Dim tc_SDLNr As TableCell = New TableCell + Dim tc_Bezeichnung As TableCell = New TableCell + Dim tc_GueltigBis As TableCell = New TableCell + Dim tc_KartNr As TableCell = New TableCell + Dim tr_M As TableRow = New TableRow + + tc_SDLNr.Text = l2.SDLNr.ToString + tc_Bezeichnung.Text = l2.Kategorie.ToString + tc_GueltigBis.Text = l2.GültigBis.ToString + tc_KartNr.Text = l2.KartenNr.ToString + tr_M.Cells.Add(tc_SDLNr) + tr_M.Cells.Add(tc_Bezeichnung) + tr_M.Cells.Add(tc_GueltigBis) + tr_M.Cells.Add(tc_KartNr) + tr_M.Attributes.Add("style", "background-color:#ff2500;color:#fff;font-weight:400;") + Tbl.Rows.Add(tr_M) + Next End Sub End Class diff --git a/login/Change_PW.aspx.vb b/login/Change_PW.aspx.vb index 7a5b8eb..b764509 100644 --- a/login/Change_PW.aspx.vb +++ b/login/Change_PW.aspx.vb @@ -129,7 +129,7 @@ Partial Class login_Change_PW MsgBox("") End Sub - Protected Sub btn_submitpw_Click(sender As Object, e As EventArgs) + Protected Async Sub btn_submitpw_Click(sender As Object, e As EventArgs) Dim tempstr As String = "" Dim UsernameDB As String = String.Empty Dim pwDB As String = String.Empty @@ -240,8 +240,8 @@ Partial Class login_Change_PW ConnectionString = "Server=DEVELOPER.verag.ost.dmn\DEVSQL;Database=VERAG_HOMEPAGE;Uid=AppUser;Pwd=yp/THDd?xM+pZ$;" 'ConnectionString = "Server=db593295684.db.1and1.com;Database=db593295684;Uid=dbo593295684;Pwd=atilla#2;" End If - Dim isPasswhash As Byte() = gensaltPassw(usrname, tempstr, intzahliterats, intzahl, Email, Session.IsNewSession) - Dim isPasswDBhash As Byte() = gensaltPassw(UsernameDB, pwDB, intzahliterats, intzahl, EmailDB, Session.IsNewSession) + Dim isPasswhash As Byte() = Await gensaltPassw(usrname, tempstr, intzahliterats, intzahl, Email, Session.IsNewSession) + Dim isPasswDBhash As Byte() = Await gensaltPassw(UsernameDB, pwDB, intzahliterats, intzahl, EmailDB, Session.IsNewSession) If regexval_txt_Pw.IsValid = True Then If VERAG_VARIABLES.Verifyhash(txt_Pw.Text, salt, isPasswDBhash, intzahliterats, intzahl) = True And VERAG_VARIABLES.Verifyhash(txt_Pw_WH.Text, salt, VERAG_VARIABLES.HashPassword(txt_Pw.Text, salt, intzahliterats, intzahl), intzahliterats, intzahl) = True Then Using con As New SqlConnection(ConnectionString) @@ -356,7 +356,7 @@ Partial Class login_Change_PW End If End Sub - Protected Sub btn_submitpw_M_Click(sender As Object, e As EventArgs) + Protected Async Sub btn_submitpw_M_Click(sender As Object, e As EventArgs) Dim tempstr As String = "" Dim pwDB As String = String.Empty Dim EmailDB As String = String.Empty @@ -459,8 +459,8 @@ Partial Class login_Change_PW End If Using con As New SqlConnection(ConnectionString) - Dim isPasswhash As Byte() = gensaltPassw(usrname, tempstr, intzahliterats, intzahl, Email, Session.IsNewSession) - Dim isPasswDBhash As Byte() = gensaltPassw(usrnmDB, pwDB, intzahliterats, intzahl, EmailDB, Session.IsNewSession) + Dim isPasswhash As Byte() = Await gensaltPassw(usrname, tempstr, intzahliterats, intzahl, Email, Session.IsNewSession) + Dim isPasswDBhash As Byte() = Await gensaltPassw(usrnmDB, pwDB, intzahliterats, intzahl, EmailDB, Session.IsNewSession) If regexval_txt_Pw.IsValid = True Then If VERAG_VARIABLES.Verifyhash(tempstr, salt, isPasswhash, intzahliterats, intzahl) = True AndAlso VERAG_VARIABLES.Verifyhash(pwDB, salt, isPasswDBhash, intzahliterats, intzahl) = True Then Using cmd As New SqlCommand("UPDATE [VERAG_HOMEPAGE].[dbo].[Users] SET Password=@Password WHERE Username=@Username AND UserId=@UserId") @@ -528,12 +528,12 @@ Partial Class login_Change_PW End If End Sub - Function gensaltPassw(username As String, password As String, intzahliterats As Integer, intzahl As Integer, email As String, isnewSession As Boolean) As Byte() + Async Function gensaltPassw(username As String, password As String, intzahliterats As Integer, intzahl As Integer, email As String, isnewSession As Boolean) As Task(Of Byte()) If isnewSession = False Then Dim token As Byte() 'Dim tok As Byte = Convert.ToBase64String(time.Concat(Key).ToArray()) Dim tok As String = password - token = VERAG_VARIABLES.HashPassword(password, salt, intzahliterats, intzahl) + token = Await VERAG_VARIABLES.HashPasswordAsync(password, salt, intzahliterats, intzahl) Return token End If End Function diff --git a/login/ForgotPW.aspx.vb b/login/ForgotPW.aspx.vb index 33ed20c..a63b35e 100644 --- a/login/ForgotPW.aspx.vb +++ b/login/ForgotPW.aspx.vb @@ -29,7 +29,7 @@ Partial Class ForgotPW End Sub - Protected Sub btn_Send_Click(sender As Object, e As EventArgs) + Protected Async Sub btn_Send_Click(sender As Object, e As EventArgs) Try Dim username As String = String.Empty Dim password As String = String.Empty @@ -210,7 +210,7 @@ Partial Class ForgotPW End Using If Session.Item("TokenforEmail") = Nothing Then - tokenname = genToken(username, password, email, customerID, isusrnmright, isCustomeridright, isemailright, Session.IsNewSession, UserID) + tokenname = Await genToken(username, password, email, customerID, isusrnmright, isCustomeridright, isemailright, Session.IsNewSession, UserID) Session.Add("TokenforEmail", tokenname) Session.Add("SessID", VERAG_PROG_ALLGEMEIN.cCryptography.Encrypt(Session.SessionID)) Else @@ -219,7 +219,7 @@ Partial Class ForgotPW Dim intzahl As Integer = VERAG_VARIABLES.RandomInteger(Math.Pow(2, 4), Math.Pow(2, 10)) Dim hashdata As Byte() = VERAG_VARIABLES.HashPassword(tokenname, VERAG_VARIABLES.GenerateSalt(intzahl), VERAG_VARIABLES.getiterationnumber, intzahl) Session.Add("TokenHashtokenized", VERAG_PROG_ALLGEMEIN.cCryptography3.Encrypt(Convert.ToBase64String(hashdata))) - If SendEmail(username, password, email, tokenname, customerID, isusrnmright, isCustomeridright, isemailright, Session.IsNewSession, UserID) = True Then + If Await SendEmail(username, password, email, tokenname, customerID, isusrnmright, isCustomeridright, isemailright, Session.IsNewSession, UserID) = True Then 'password = RandomString(New Random, 10) If (getDateoftoken(tokenname) = True) Then 'Dim msgboxstyle = vbDefaultButton1 + vbOK @@ -235,7 +235,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, isusrnmright, isCustomeridright, isemailright, Session.IsNewSession, UserID) + tokenname = Await genToken(username, password, email, customerID, isusrnmright, isCustomeridright, isemailright, Session.IsNewSession, UserID) Session.Add("TokenforEmail", tokenname) Else tokenname = Session.Item("TokenforEmail") @@ -245,7 +245,7 @@ Partial Class ForgotPW 'MsgBox("Mail would be sent successfully!") lblMessage.ForeColor = Color.Green lblMessage.Text = "The Password-Reset-Link has been mailed to the valid Address given." - ElseIf SendEmail(username, password, email, tokenname, customerID, isusrnmright, isCustomeridright, isemailright, Session.IsNewSession, UserID) = True Then + ElseIf Await SendEmail(username, password, email, tokenname, customerID, isusrnmright, isCustomeridright, isemailright, Session.IsNewSession, UserID) = True Then 'MsgBox("Mail would not be sent successfully!") lblMessage.ForeColor = Color.Red If String.IsNullOrWhiteSpace(username) = True Then @@ -275,7 +275,7 @@ Partial Class ForgotPW End Try End Sub - Protected Sub btn_Send_M_Click(sender As Object, e As EventArgs) + Protected Async Sub btn_Send_M_Click(sender As Object, e As EventArgs) Dim username As String = String.Empty Dim password As String = String.Empty @@ -454,7 +454,7 @@ Partial Class ForgotPW End Using If Session.Item("TokenforEmail") = Nothing Then - tokenname = genToken(username, password, email, customerID, isusernameright, isuserIDright, isuserEmailright, Session.IsNewSession, UserID) + tokenname = Await genToken(username, password, email, customerID, isusernameright, isuserIDright, isuserEmailright, Session.IsNewSession, UserID) Session.Add("TokenforEmail", tokenname) Session.Add("SessID", VERAG_PROG_ALLGEMEIN.cCryptography.Encrypt(Session.SessionID)) Else @@ -467,7 +467,7 @@ Partial Class ForgotPW 'md5temptoken = gensaltToken(username, password, email, customerID, isusernameright, isuserIDright, isuserEmailright, Session.IsNewSession, UserID) 'MsgBox("Token:" + tokenname + Environment.NewLine + "md5" + md5temptoken) - If SendEmail_M(username, password, email, tokenname, customerID, isusernameright, isuserIDright, isuserEmailright, Session.IsNewSession, UserID) = True Then + If Await SendEmail_M(username, password, email, tokenname, customerID, isusernameright, isuserIDright, isuserEmailright, Session.IsNewSession, UserID) = True Then 'password = RandomString(New Random, 10) If (getDateoftoken(tokenname) = True) Then 'Dim msgboxstyle = vbDefaultButton1 + vbOK @@ -482,7 +482,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, isusernameright, isuserIDright, isuserEmailright, Session.IsNewSession, UserID) + tokenname = Await genToken(username, password, email, customerID, isusernameright, isuserIDright, isuserEmailright, Session.IsNewSession, UserID) Session.Add("TokenforEmail", tokenname) Else tokenname = Session.Item("TokenforEmail") @@ -492,7 +492,7 @@ Partial Class ForgotPW 'MsgBox("Mail would be sent successfully!") lblMessage_M.ForeColor = Color.Green lblMessage_M.Text = "The Password-Reset-Link has been mailed to the valid E-Mail Address given." - ElseIf SendEmail_M(username, password, email, tokenname, customerID, isusernameright, isuserIDright, isuserEmailright, Session.IsNewSession, UserID) = True Then + ElseIf Await SendEmail_M(username, password, email, tokenname, customerID, isusernameright, isuserIDright, isuserEmailright, Session.IsNewSession, UserID) = True Then 'MsgBox("Mail would not be sent successfully!") lblMessage_M.ForeColor = Color.Red If String.IsNullOrWhiteSpace(username) = True Then @@ -516,7 +516,7 @@ Partial Class ForgotPW End If End Sub - Function SendEmail_M(username As String, password As String, email As String, tokenname As String, customerID As String, isusrnmright As Boolean, iscstmIDright As Boolean, isemailright As Boolean, sessionisnew As Boolean, theUserID As String) As Boolean + Async Function SendEmail_M(username As String, password As String, email As String, tokenname As String, customerID As String, isusrnmright As Boolean, iscstmIDright As Boolean, isemailright As Boolean, sessionisnew As Boolean, theUserID As String) As Task(Of Boolean) Dim getdomianenvironment As String = String.Empty Dim pagename As String = String.Empty Dim ServPort As String = String.Empty @@ -562,13 +562,13 @@ Partial Class ForgotPW Try If Session.Item("TokenforEmail") = Nothing Then - tokenname = genToken(username, password, email, customerID, isusrnmright, iscstmIDright, isemailright, Session.IsNewSession, theUserID) + tokenname = Await genToken(username, password, email, customerID, isusrnmright, iscstmIDright, isemailright, Session.IsNewSession, theUserID) Session.Add("TokenforEmail", tokenname) Else tokenname = Session.Item("TokenforEmail").ToString() End If 'Dim Strtemp = Session.Keys.Item("urltochangepw") - If getDateoftoken(tokenname) = True Then + If Await getDateoftokenAsync(tokenname) = True Then ' Dim attachment As Attachment = New Attachment(File.OpenRead(excel), "Kundenliste.xlsx") ' Msg.Attachments.Add(attachment) If String.IsNullOrEmpty(mailto) = False AndAlso String.IsNullOrEmpty(Betreff) = False AndAlso String.IsNullOrEmpty(htmlbody) = False Then @@ -589,7 +589,7 @@ Partial Class ForgotPW lblMessage_M.Text = VERAG_VARIABLES.geterrornumb + "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, customerID, isusrnmright, iscstmIDright, isemailright, Session.IsNewSession, theUserID) + tokenname = Await genToken(username, password, email, customerID, isusrnmright, iscstmIDright, isemailright, Session.IsNewSession, theUserID) Session.Add("TokenforEmail", tokenname) Session.Add("USerID", customerID) Else @@ -611,11 +611,11 @@ Partial Class ForgotPW Async Function Findtokenhashsalt(username As String, password As String, email As String, customerID As String, isusernameright As Boolean, isuserIDright As Boolean, isuserEmailright As Boolean, isnewsess As Boolean, UserID As String) As Task(Of String) Dim t As Task(Of String) t = Task.Run(Async Function() As Task(Of String) - Return gensaltToken(username, password, email, customerID, isusernameright, isuserIDright, isuserEmailright, isnewsess, UserID, VERAG_VARIABLES.RandomInteger(Math.Pow(2, 4), Math.Pow(2, 7))) + Return Await gensaltToken(username, password, email, customerID, isusernameright, isuserIDright, isuserEmailright, isnewsess, UserID, VERAG_VARIABLES.RandomInteger(Math.Pow(2, 4), Math.Pow(2, 7))) End Function) Return Await t End Function - Function SendEmail(username As String, password As String, email As String, tokenname As String, customerID As String, isusrnmright As Boolean, iscstmIDright As Boolean, isemailright As Boolean, sessionisnew As Boolean, theUserID As String) As Boolean + Async Function SendEmail(username As String, password As String, email As String, tokenname As String, customerID As String, isusrnmright As Boolean, iscstmIDright As Boolean, isemailright As Boolean, sessionisnew As Boolean, theUserID As String) As Task(Of Boolean) Dim getdomianenvironment As String = String.Empty Dim pagename As String = String.Empty Dim ServPort As String = String.Empty @@ -661,14 +661,14 @@ Partial Class ForgotPW Try If Session.Item("TokenforEmail") = Nothing Then - tokenname = genToken(username, password, email, customerID, isusrnmright, iscstmIDright, isemailright, Session.IsNewSession, theUserID) + tokenname = Await genToken(username, password, email, customerID, isusrnmright, iscstmIDright, isemailright, Session.IsNewSession, theUserID) Session.Add("TokenforEmail", tokenname) Else tokenname = Session.Item("TokenforEmail").ToString() End If 'Dim Strtemp = Session.Keys.Item("urltochangepw") - If getDateoftoken(tokenname) = True Then + If Await getDateoftokenAsync(tokenname) = True Then ' Dim attachment As Attachment = New Attachment(File.OpenRead(excel), "Kundenliste.xlsx") ' Msg.Attachments.Add(attachment) If String.IsNullOrEmpty(mailto) = False AndAlso String.IsNullOrEmpty(Betreff) = False AndAlso String.IsNullOrEmpty(htmlbody) = False Then @@ -688,7 +688,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, customerID, isusrnmright, iscstmIDright, isemailright, Session.IsNewSession, theUserID) + tokenname = Await genToken(username, password, email, customerID, isusrnmright, iscstmIDright, isemailright, Session.IsNewSession, theUserID) Session.Add("TokenforEmail", tokenname) Session.Add("USerID", customerID) Else @@ -708,16 +708,17 @@ Partial Class ForgotPW End If End Function - Function genToken(username As String, password As String, email As String, CustomerID As String, isusrnmright As Boolean, iscstmIDright As Boolean, isemailright As Boolean, isnewSession As Boolean, theUserID As String) As String + Async Function genToken(username As String, password As String, email As String, CustomerID As String, isusrnmright As Boolean, iscstmIDright As Boolean, isemailright As Boolean, isnewSession As Boolean, theUserID As String) As Task(Of String) If isnewSession = False Then Dim time() As Byte = BitConverter.GetBytes(DateTime.UtcNow.ToBinary()) Dim Key() As Byte = Guid.NewGuid().ToByteArray() - Dim token As String + Dim token As String = String.Empty If isusrnmright = True And iscstmIDright = True And isemailright = True AndAlso String.IsNullOrEmpty(theUserID) = False Then - Try - token = VERAG_PROG_ALLGEMEIN.cCryptography3.Encrypt(Convert.ToBase64String(time.Concat(Key).ToArray())) + + token = VERAG_PROG_ALLGEMEIN.cCryptography3.Encrypt(Convert.ToBase64String(time.Concat(Key).ToArray())) + If Not String.IsNullOrEmpty(token) Then Return token - Catch Ex As Exception + Else 'Dim Msg, Style, Title As String 'Msg = "Token Generation failed" & vbCrLf & "A new E-mail has been sent to the intern e-mail given." 'Style = vbRetry + vbExclamation + vbDefaultButton1 @@ -726,7 +727,8 @@ Partial Class ForgotPW 'If MsgBox(Msg, Style, Title).Retry Then 'genToken(username, password, email) token = VERAG_PROG_ALLGEMEIN.cCryptography3.Encrypt(Convert.ToBase64String(time.Concat(Key).ToArray())) - If SendEmail(username, password, email, token, CustomerID, isusrnmright, iscstmIDright, isemailright, Session.IsNewSession, theUserID) = True Then + Dim boolemailsent As Boolean = Await SendEmail(username, password, email, token, CustomerID, isusrnmright, iscstmIDright, isemailright, Session.IsNewSession, theUserID) + If boolemailsent = 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!") @@ -739,13 +741,13 @@ Partial Class ForgotPW If jetzt < wenn Then Return "NotYet" Else - token = genToken(username, password, email, CustomerID, isusrnmright, iscstmIDright, isemailright, Session.IsNewSession, theUserID) + token = Await genToken(username, password, email, CustomerID, isusrnmright, iscstmIDright, isemailright, Session.IsNewSession, theUserID) Return token 'End If End If - End Try + End If Else - Return String.Empty + Return String.Empty End If Else Return "Error in Session ID. It has changed. Please check admin!" @@ -760,7 +762,7 @@ Partial Class ForgotPW Return min + (max - min) * (one_byte(0) / 255) End Function - Function gensaltToken(username As String, password As String, email As String, CustomerID As String, isusrnmright As Boolean, iscstmIDright As Boolean, isemailright As Boolean, isnewSession As Boolean, theUserID As String, intz As Integer) As String + Async Function gensaltToken(username As String, password As String, email As String, CustomerID As String, isusrnmright As Boolean, iscstmIDright As Boolean, isemailright As Boolean, isnewSession As Boolean, theUserID As String, intz As Integer) As Task(Of String) If isnewSession = False Then Dim time() As Byte = BitConverter.GetBytes(DateTime.UtcNow.ToBinary()) Dim Key() As Byte = Guid.NewGuid().ToByteArray() @@ -773,7 +775,7 @@ Partial Class ForgotPW 'Dim tok As Byte = Convert.ToBase64String(time.Concat(Key).ToArray()) Dim tok As String = Convert.ToBase64String(time.Concat(Key).ToArray()) - token = VERAG_VARIABLES.HashPassword(tok, VERAG_VARIABLES.GenerateSalt(intz), intzahliterats, intzahl) + token = Await VERAG_VARIABLES.HashPasswordAsync(tok, VERAG_VARIABLES.GenerateSalt(intz), intzahliterats, intzahl) Return Convert.ToBase64String(token) Else @@ -822,6 +824,54 @@ Partial Class ForgotPW Return True End If End Function + Async Function getDateoftokenAsync(tokenname As String) As Task(Of Boolean) + Dim data() As Byte = Convert.FromBase64String(VERAG_PROG_ALLGEMEIN.cCryptography3.Decrypt(tokenname)) + Dim wenn As DateTime = DateTime.FromBinary(BitConverter.ToInt64(data, 0)) + Dim nameoftoken = VERAG_PROG_ALLGEMEIN.cCryptography3.Decrypt(tokenname) + Dim niteras As Integer = VERAG_VARIABLES.RandomInteger(Math.Pow(2, 4), Math.Pow(2, 7)) + Dim nzrand As Integer = VERAG_VARIABLES.RandomInteger(Math.Pow(2, 4), Math.Pow(2, 10)) + Dim newsalt As Byte() = VERAG_VARIABLES.GenerateSalt(nzrand) + Dim newhash As Byte() = Await VERAG_VARIABLES.HashPasswordAsync(tokenname, newsalt, niteras, nzrand) + If wenn < DateTime.UtcNow.AddMinutes(-30) And Await VERAG_VARIABLES.VerifyhashAsync(tokenname, salt, newhash, niteras, nzrand) = True Then + nameoftoken = String.Empty + + + tokenname = nameoftoken + + 'MsgBox("Token has not been found or is too old!" + Environment.NewLine + "Please send a new E-mail!") + If String.IsNullOrEmpty(txtEmail.Text) And String.IsNullOrEmpty(txt_CustomerID.Text) And String.IsNullOrEmpty(txt_Username.Text) Then + lblMessage.Text = "Token has not been found or is too old!" + Environment.NewLine + "Please send a new E-mail!" + ElseIf String.IsNullOrEmpty(txtEmail_M.Text) And String.IsNullOrEmpty(txt_CustomerID_M.Text) And String.IsNullOrEmpty(txt_Username_M.Text) Then + lblMessage_M.Text = "Token has not been found or is too old!" + Environment.NewLine + "Please send a new E-mail!" + End If + + Session.Remove("TokenforEmail") + Return True + ElseIf nameoftoken = "Error04" Then + nameoftoken = String.Empty + tokenname = nameoftoken + Session.Remove("TokenforEmail") + Return True + ElseIf nameoftoken = "NotYet" Then + Return True + ElseIf nameoftoken = "Error in Session ID. It has changed. Please check admin!" Then + ' Dim mailto As String = "support@verag.ag" + Dim mailto As String = "ja@verag.ag" + Dim htmlbody As String = String.Empty + VERAG_VARIABLES.seterrorcount(500) + Dim Betreff As String = "Session ID" + VERAG_VARIABLES.geterrornumb + If String.IsNullOrEmpty(txt_Username.Text) = False And String.IsNullOrEmpty(txt_Username_M.Text) = True Then + htmlbody = "

Der User " + txt_Username.Text + "hat eine ungültige oder geänderte Session-ID

Userneue ID
" + txt_Username.Text + "" + Session.SessionID + "
" + ElseIf String.IsNullOrEmpty(txt_Username_M.Text) = False And String.IsNullOrEmpty(txt_Username.Text) = True Then + htmlbody = "

Der User " + txt_Username_M.Text + "hat eine ungültige oder geänderte Session-ID

Userneue ID
" + txt_Username_M.Text + "" + Session.SessionID + "
" + End If + VERAG_PROG_ALLGEMEIN.cProgramFunctions.sendMail(mailto, Betreff, htmlbody) + Return False + Else + Return True + + End If + End Function Function RandomString(r As Random, max As Integer) As String Dim s As String = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!§$%&/?=" @@ -834,30 +884,30 @@ Partial Class ForgotPW Return sb.ToString() End Function - Protected Sub btn_Testmail_Click(sender As Object, e As EventArgs) + Protected Async Sub btn_Testmail_Click(sender As Object, e As EventArgs) Dim username As String = "userwithlongername" Dim Passw As String = "Test1!W" Dim email As String = "ja@verag.ag" Dim CustomerID As String = "717585" Dim TheusrID As String = "3" - Dim tokentest As String = genToken(username, Passw, email, CustomerID, True, True, True, False, TheusrID) + Dim tokentest As String = Await genToken(username, Passw, email, CustomerID, True, True, True, False, TheusrID) Dim hashtoken As Byte() Dim iterationnumb As Integer = VERAG_VARIABLES.getiterationnumber Dim intzahl1 As Integer = VERAG_VARIABLES.RandomInteger(Math.Pow(2, 6), Math.Pow(2, 10)) 'MsgBox(salttoken) If Session.Item("TokenforEmail") = Nothing Then - tokentest = genToken(username, Passw, email, CustomerID, True, True, True, False, TheusrID) + tokentest = Await genToken(username, Passw, email, CustomerID, True, True, True, False, TheusrID) Session.Add("TokenforEmail", tokentest) Session.Add("SessID", VERAG_PROG_ALLGEMEIN.cCryptography.Encrypt(Session.SessionID)) Else tokentest = Session.Item("TokenforEmail") End If salt = VERAG_VARIABLES.GenerateSalt(intzahl1) - hashtoken = VERAG_VARIABLES.HashPassword(tokentest, salt, iterationnumb, intzahl1) - If VERAG_VARIABLES.Verifyhash(tokentest, salt, hashtoken, iterationnumb, intzahl1) = True Then - If SendEmail(username, Passw, email, tokentest, CustomerID, True, True, True, False, TheusrID) = True Then + hashtoken = Await VERAG_VARIABLES.HashPasswordAsync(tokentest, salt, iterationnumb, intzahl1) + If Await VERAG_VARIABLES.VerifyhashAsync(tokentest, salt, hashtoken, iterationnumb, intzahl1) = True Then + If Await SendEmail(username, Passw, email, tokentest, CustomerID, True, True, True, False, TheusrID) = True Then 'password = RandomString(New Random, 10) - If getDateoftoken(tokentest) = True Then + If Await getDateoftokenAsync(tokentest) = True Then 'Dim msgboxstyle = vbDefaultButton1 + vbOK 'MsgBox(tokenname, msgboxstyle) lblMessage_M.ForeColor = Color.Green @@ -870,7 +920,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 - tokentest = genToken(username, Passw, email, CustomerID, True, True, True, False, TheusrID) + tokentest = Await genToken(username, Passw, email, CustomerID, True, True, True, False, TheusrID) Session.Add("TokenforEmail", tokentest) Else tokentest = Session.Item("TokenforEmail") diff --git a/login/login_FLEX.aspx.vb b/login/login_FLEX.aspx.vb index 45cc641..490da37 100644 --- a/login/login_FLEX.aspx.vb +++ b/login/login_FLEX.aspx.vb @@ -9,18 +9,92 @@ Partial Class login_FLEX Private USERID As String = String.Empty Private salt As Byte() Private intzahl As Integer - Private intzahliterats As Integer - Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load + Public intzahliterats As Integer = -1 + Protected Async Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load VERAG_VARIABLES.initerrorcount() + If Page.IsPostBack = True Then Page.MaintainScrollPositionOnPostBack = True - intzahliterats = VERAG_VARIABLES.getiterationnumber Else + Try + Dim teststr = String.Empty + intzahliterats = 4 + teststr = Await TestPerformance.TestHashrateServerAsync(VERAG_VARIABLES.RandomInteger(2, Math.Pow(2, 2))) + If String.Equals(teststr, String.Empty) = False Then + intzahliterats = VERAG_VARIABLES.getiterationnumber + End If + Catch Ex As SettingsPropertyNotFoundException + VERAG_VARIABLES.seterrorcount(4534) + intzahliterats = 0 + Response.Write(VERAG_VARIABLES.geterrornumb() + "Error on Tests for login! Try again!") + VERAG_VARIABLES.seterrorcount(4232) + + sendmail("ja@verag.ag", Session.IsNewSession, VERAG_VARIABLES.geterrornumb) + End Try Page.MaintainScrollPositionOnPostBack = False End If End Sub - Protected Sub ValidateUser(sender As Object, e As EventArgs) + + Public Shared Sub sendmail(emailTo As String, sessionright As Boolean, errornumb As String) + Dim getdomianenvironment As String = String.Empty + Dim pagename As String = String.Empty + Dim ServPort As String = String.Empty + Dim mailto As String = String.Empty + Dim Betreff As String = String.Empty + Dim htmlbody As String = String.Empty + Dim emailnr = VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA_ID.ToString + + If HttpContext.Current.Request.ServerVariables("SERVER_NAME") = "localhost" Then + 'MsgBox(getdomianenvironment) + getdomianenvironment = HttpContext.Current.Request.ServerVariables("SERVER_NAME") + ServPort = ":" + HttpContext.Current.Request.ServerVariables("SERVER_PORT") + 'pagename = Request.ServerVariables("SCRIPT_NAME") + mailto = emailTo + Betreff = "Passwort reset" + Dim mailpic As String = "" + Dim Ausschusstext As String = "Wir arbeiten ausschließlich auf Grund der Allgemeinen Spediteurbedingungen in der jeweils geltenden Fassung. Zahlungen werden zunächst auf Frachten, Spesen" + Dim Ausschusstext2 As String = "und Zinsen zuletzt auf Zölle angerechnet. Zahlbar und klagbar in Schärding oder Ried. Steuer-Zoll-und Tarifauskünfte sind unverbindlich." + Dim Ausschusstext3 As String = "We operate exclusively on the basis of the General Freight Forwarding Terms and Conditions in the respectively applicable version. Payments are initially" + Dim Ausschusstext4 As String = "charged on freight, fees and interests and at last on customs duties. The place of jurisdiction: Schärding / Ried. Tax, customs and tariff information are not binding." + htmlbody = String.Format("Auf der Seite http: //" + getdomianenvironment + "/login/Customers/login_FLEX.aspx trat der Fehler " + errornumb + "auf. Bitte Logs anschauen." + Environment.NewLine + "

Notice:
The Link is valid for 30 minutes until" + Space(1) + Date.Now.AddMinutes(30).ToString() + Space(1) + "only!
To resend the E-Mail: Follow this Link
Kind regards,
VERAG | EDV Support
" + mailpic + "
VERAG Spedition AG | A 4975 Suben, Nr. 100
T.+43 7711 2777-xx |support@verag.ag | " + emailnr + "FN xxxxxxx
" + Ausschusstext + "
" + Ausschusstext2 + "
" + Ausschusstext3 + "
" + Ausschusstext4 + "
") + ElseIf String.IsNullOrWhiteSpace(HttpContext.Current.Request.ServerVariables("SERVER_NAME")) = False Then + getdomianenvironment = HttpContext.Current.Request.ServerVariables("SERVER_NAME") + 'MsgBox(getdomianenvironment) + ServPort = ":" + HttpContext.Current.Request.ServerVariables("SERVER_PORT") + 'pagename = Request.ServerVariables("SCRIPT_NAME") + mailto = emailTo + Betreff = "Passwort reset" + Dim mailpic As String = "" + Dim Ausschusstext As String = "Wir arbeiten ausschließlich auf Grund der Allgemeinen Spediteurbedingungen in der jeweils geltenden Fassung. Zahlungen werden zunächst auf Frachten, Spesen" + Dim Ausschusstext2 As String = "und Zinsen zuletzt auf Zölle angerechnet. Zahlbar und klagbar in Schärding oder Ried. Steuer-Zoll-und Tarifauskünfte sind unverbindlich." + Dim Ausschusstext3 As String = "We operate exclusively on the basis of the General Freight Forwarding Terms and Conditions in the respectively applicable version. Payments are initially" + Dim Ausschusstext4 As String = "charged on freight, fees and interests and at last on customs duties. The place of jurisdiction: Schärding / Ried. Tax, customs and tariff information are not binding." + htmlbody = String.Format("Auf der Seite http: //" + getdomianenvironment + "/login/Customers/login_FLEX.aspx trat der Fehler " + errornumb + "auf. Bitte Logs anschauen." + Environment.NewLine + "

Notice:
The Link is valid for 30 minutes until" + Space(1) + Date.Now.AddMinutes(30).ToString() + Space(1) + "only!
To resend the E-Mail: Follow this Link
Kind regards,
VERAG | EDV Support
" + mailpic + "
VERAG Spedition AG | A 4975 Suben, Nr. 100
T.+43 7711 2777-xx |support@verag.ag | " + emailnr + "FN xxxxxxx
" + Ausschusstext + "
" + Ausschusstext2 + "
" + Ausschusstext3 + "
" + Ausschusstext4 + "
") + ElseIf String.IsNullOrWhiteSpace(HttpContext.Current.Request.ServerVariables("SERVER_NAME")) = True Then + 'MsgBox("Error09:" + Environment.NewLine + "The Domain could not be vaildated. Check Link please or contact the Administrator of the program.") + End If + 'Dim pg As String = Request.ServerVariables("URL") + 'MsgBox("/" + ServPort + Request.ServerVariables("URL")) + Try + 'Dim Strtemp = Session.Keys.Item("urltochangepw") + ' Msg.Attachments.Add(attachment) + If String.IsNullOrEmpty(mailto) = False AndAlso String.IsNullOrEmpty(Betreff) = False AndAlso String.IsNullOrEmpty(htmlbody) = False Then + VERAG_PROG_ALLGEMEIN.cProgramFunctions.sendMail(mailto, Betreff, htmlbody) + Else + + VERAG_VARIABLES.seterrorcount(7) + 'lblMessage_M.Text = VERAG_VARIABLES.geterrornumb + "The form has not been filled out completely." + End If + ' lblMessage_M.ForeColor = Color.Green + 'lblMessage_M.Text = "Success" + Environment.NewLine + "The Password-Reset-Link has been mailed to the valid Address given." + 'MsgBox("SENT") + Catch ex As Exception + 'MsgBox(Err.Number & ex.Message & ex.StackTrace.ToString) 'Falls ein Fehler auftritt wird eine MsgBox angezeigt + End Try + End Sub + + Protected Async Sub ValidateUser(sender As Object, e As EventArgs) Dim ConnectionString = "" If HttpContext.Current.Request.ServerVariables("SERVER_NAME") = "localhost" Then VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM = True @@ -116,7 +190,7 @@ Partial Class login_FLEX reqfieldvalpassw.Validate() If reqfieldvalpassw.IsValid = True Then intzahl = VERAG_VARIABLES.RandomInteger(Math.Pow(2, 6), Math.Pow(2, 10)) - Dim hashpw1 As Byte() = VERAG_VARIABLES.HashPassword(tb3.Text, salt, intzahliterats, intzahl) + Dim hashpw1 As Byte() = Await VERAG_VARIABLES.HashPasswordAsync(tb3.Text, salt, intzahliterats, intzahl) passw = tb3.Text End If End If @@ -125,9 +199,8 @@ Partial Class login_FLEX reqfieldvalpassw_M.Enabled = True reqfieldvalpassw_M.Validate() intzahl = VERAG_VARIABLES.RandomInteger(Math.Pow(2, 6), Math.Pow(2, 10)) - Dim hashpw1_M As Byte() = VERAG_VARIABLES.HashPassword(tb3_M.Text, salt, intzahliterats, intzahl) If reqfieldvalpassw_M.IsValid = True Then - Dim hashpw_M As Byte() = VERAG_VARIABLES.HashPassword(tb3_M.Text, salt, intzahliterats, intzahl) + Dim hashpw_M As Byte() = Await VERAG_VARIABLES.HashPasswordAsync(tb3_M.Text, salt, intzahliterats, intzahl) passw = tb3_M.Text Else VERAG_VARIABLES.seterrorcount(4) @@ -175,8 +248,8 @@ Partial Class login_FLEX If String.Equals(tb3.Text, dr("Password")) = True Then intzahl = VERAG_VARIABLES.RandomInteger(Math.Pow(2, 6), Math.Pow(2, 10)) salt = VERAG_VARIABLES.GenerateSalt(intzahl) - Dim hashpw As Byte() = VERAG_VARIABLES.HashPassword(passw, salt, intzahliterats, intzahl) - If VERAG_VARIABLES.Verifyhash(dr("Password").ToString, salt, hashpw, intzahliterats, intzahl) = True Then + Dim hashpw As Byte() = Await VERAG_VARIABLES.HashPasswordAsync(passw, salt, intzahliterats, intzahl) + If Await VERAG_VARIABLES.VerifyhashAsync(dr("Password").ToString, salt, hashpw, intzahliterats, intzahl) = True Then passw = dr("Password").ToString Else passw = String.Empty