apfnet 0 Denunciar post Postado Setembro 9, 2008 Pessoas, A minha classe está dando pau numa variável. Creio que não está armazenado nenhum valor quando a inicio. Onde está de vermelho aparece a mensagem: O tamanho do argumento 'String' deve ser maior que zero. Imports System.Web Imports Microsoft.VisualBasic ' Classe para encryptar ou descriptar parâmetros da QueryString. ' Exemplos ' Para encriptar a QueryString a nível de página: ' Encryption_String = "?Var1=1&Var2=2&Var3=3" ' ENCRYPTED_CYPHERTEXT = "info=" & cl_encripta_decripta_querytstring.EnCrypt(Encryption_String) 'Para decriptar a QueryString a nível de página: 'Var1 = cl_encripta_decripta_querytstring.Request_eQueryString("Var1") 'Var2 = cl_encripta_decripta_querytstring.Request_eQueryString("Var2") 'Var3 = cl_encripta_decripta_querytstring.Request_eQueryString("CourseParentLevelID") Public Class cl_encripta_decripta_querytstring Private Shared Encryption_Key As String Private Shared Encryption_KeyLocation As String Private Shared DECRYPTED_CYPHERTEXT As String Private Shared g_CryptThis As String Private Shared Request As Web.HttpRequest = Web.HttpContext.Current.Request Private Shared Server As Web.HttpServerUtility = System.Web.HttpContext.Current.Server Private Shared Response As HttpResponse = System.Web.HttpContext.Current.Response ' Setar valores: ' Encryption_Key ' g_CryptThis ' DECRYPTED_CYPHERTEXT Public Property PPEncryption_Key() As String Get Return Encryption_Key End Get Set(ByVal strValue As String) Encryption_Key = strValue End Set End Property Public Property PPg_CryptThis() As String Get Return g_CryptThis End Get Set(ByVal value As String) value = Request.QueryString("info") g_CryptThis = value End Set End Property Public Property PPDECRYPTED_CYPHERTEXT() As String Get If Len(g_CryptThis) > 1 Then DECRYPTED_CYPHERTEXT = DeCrypt(g_CryptThis) End If Return DECRYPTED_CYPHERTEXT End Get Set(ByVal strValue As String) DECRYPTED_CYPHERTEXT = strValue End Set End Property Shared Sub New() Encryption_Key = "RW1C]U`C8E(A_<H`I4WY76A_+QW._)?L[B\;D<$\S>^;RA`V%15F&K^-V^92]RQ[N>&.IT_R)[5);5AIV8C01Z]&I+/I0S1ZG=4\)1$HNQSKS)1[;<.UQ8G0[(`8M>%*\24KZ#5^#P&'U.;0*.[<C2&,(F=>3$7,,ML:Z;`9=LS:<W)(>?;%@\B;G:*^XT3AKB+,#L1795IHA7E&Q$3PAK(AT4R\:'`NXB7#,+/=/=1T\]XI>K.B@M^^*(`9P)M4-?[_0&$,9W2_K^08]+V<9647_E?5U.AS^,C'+OY&368.FLRQK1V@$V/,S@WRDGEOM9V8S<[L5I-=F8J:_QWN:BZ\[ISUTH%JOY@U';4BYD;RG3%P6?D-8IA0SR]>CB*'?@+B\_,*<YK0AO'9(+GXU@-DUO_OHF\E8\?@2<L$5;IU0`]UMFHWN7'<<1DK^)JGR$)P\#`R]X]GL8RGCC4+[@8;^*53@9:P*EO6Y$4XR(4FQ'P1#U2S7..`Y*YI'J8C" g_CryptThis = Request.QueryString("info") 'Encryption_Key = Mid(ReadKeyFromFile(Encryption_KeyLocation), 1, Len(g_CryptThis)) Encryption_Key = Mid(Encryption_Key, 1, Len(g_CryptThis)) End Sub Public Property Encryption_KeyFull() As Int32 Get Return Encryption_Key End Get Set(ByVal Value As Int32) Encryption_Key = Value End Set End Property Public Shared Function Request_eQueryString(ByVal GetQueryString) Dim i As Integer Dim Found_It As Integer Dim Chop_DECRYPTED_CYPHERTEXT As String Dim Found_It_Here As Integer Dim TrimExcess As Integer Found_It_Here = 0 TrimExcess = 0 Chop_DECRYPTED_CYPHERTEXT = "" For i = 0 To Len(GetQueryString) Found_It = InStr(1, DECRYPTED_CYPHERTEXT, "&" & GetQueryString & "=", 1) If CInt(Found_It) > 0 Then Found_It_Here = Found_It TrimExcess = 1 End If If Found_It_Here < 1 Then Found_It = InStr(1, DECRYPTED_CYPHERTEXT, "?" & GetQueryString & "=", 1) If (CInt(Found_It) > 0) Then Found_It_Here = Found_It TrimExcess = 2 End If End If If Found_It_Here > 0 Then Chop_DECRYPTED_CYPHERTEXT = Right(DECRYPTED_CYPHERTEXT, (Len(DECRYPTED_CYPHERTEXT)) - Found_It - Len(GetQueryString) - TrimExcess) Found_It = InStr(1, Chop_DECRYPTED_CYPHERTEXT, "&", 1) If CInt(Found_It) > 0 Then Chop_DECRYPTED_CYPHERTEXT = Left(Chop_DECRYPTED_CYPHERTEXT, Found_It - 1) End If End If Next Request_eQueryString = Chop_DECRYPTED_CYPHERTEXT End Function Public Shared Function EnCrypt(ByVal strCryptThis) strCryptThis = ChkString(strCryptThis) 'Dim strChar As String Dim iKeyChar As Integer Dim iStringChar As Integer Dim i As Integer Dim iCryptChar As Integer Dim strEncrypted As String = Nothing For i = 1 To Len(strCryptThis) iKeyChar = Asc(Mid([color="#FF0000"]Encryption_Key[/color], i, 1)) iStringChar = Asc(Mid(strCryptThis, i, 1)) iCryptChar = iStringChar + iKeyChar If iCryptChar > 255 Then iCryptChar = iCryptChar - 256 End If 'iCryptChar = iKeyChar Xor iStringChar strEncrypted = strEncrypted & Chr(iCryptChar) Next EnCrypt = Server.UrlEncode(strEncrypted) End Function Private Shared Function DeCrypt(ByVal strEncrypted) 'Dim strChar As String Dim iKeyChar As Integer Dim iStringChar As String Dim i As Integer Dim iDeCryptChar As Integer Dim strDecrypted As String = "" For i = 1 To Len(strEncrypted) iKeyChar = (Asc(Mid(Encryption_Key, i, 1))) iStringChar = Asc(Mid(strEncrypted, i, 1)) iDeCryptChar = iStringChar - iKeyChar 'iDeCryptChar = iKeyChar Xor iStringChar If iDeCryptChar < 0 Then iDeCryptChar = iDeCryptChar + 256 End If If (iDeCryptChar = 34) Or (iDeCryptChar = 39) Then Response.Write("Ocorreu um erro na criptografia. Por favor verifique as configurações.") Response.End() Else strDecrypted = strDecrypted & Chr(iDeCryptChar) End If Next DeCrypt = strDecrypted End Function 'Private Shared Function ReadKeyFromFile(ByVal strFileName) ' 'keyFile ' ReadKeyFromFile = "RW1C]U`C8E(A_<H`I4WY76A_+QW._)?L[B\;D<$\S>^;RA`V%15F&K^-V^92]RQ[N>&.IT_R)[5);5AIV8C01Z]&I+/I0S1ZG=4\)1$HNQSKS)1[;<.UQ8G0[(`8M>%*\24KZ#5^#P&'U.;0*.[<C2&,(F=>3$7,,ML:Z;`9=LS:<W)(>?;%@\B;G:*^XT3AKB+,#L1795IHA7E&Q$3PAK(AT4R\:'`NXB7#,+/=/=1T\]XI>K.B@M^^*(`9P)M4-?[_0&$,9W2_K^08]+V<9647_E?5U.AS^,C'+OY&368.FLRQK1V@$V/,S@WRDGEOM9V8S<[L5I-=F8J:_QWN:BZ\[ISUTH%JOY@U';4BYD;RG3%P6?D-8IA0SR]>CB*'?@+B\_,*<YK0AO'9(+GXU@-DUO_OHF\E8\?@2<L$5;IU0`]UMFHWN7'<<1DK^)JGR$)P\#`R]X]GL8RGCC4+[@8;^*53@9:P*EO6Y$4XR(4FQ'P1#U2S7..`Y*YI'J8C" 'End Function Shared Function ChkString(ByVal strQstring) If strQstring = "" Then strQstring = " " End If ChkString = Replace(strQstring, """", "") ChkString = Replace(ChkString, "'", "") End Function End Class Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Setembro 9, 2008 Movido Plataforma .NET http://forum.imasters.com.br/public/style_emoticons/default/seta.gif Plataforma .NET » Web Applications Esta variável Encryption_Key esta alimentada com algum valor na parte do código em que esta dando o erro? Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
apfnet 0 Denunciar post Postado Setembro 21, 2008 Movido Plataforma .NET http://forum.imasters.com.br/public/style_emoticons/default/seta.gif Plataforma .NET » Web Applications Esta variável Encryption_Key esta alimentada com algum valor na parte do código em que esta dando o erro? Abraços... Valeu quintelab! Era só declarar a variável e atribuir valor à ela. Compartilhar este post Link para o post Compartilhar em outros sites