শিরোনাম হিসাবে, আমি পাচ্ছি:
বেস-64৪ চর অ্যারের অবৈধ দৈর্ঘ্য।
আমি এখানে এই সমস্যাটি সম্পর্কে পড়েছি এবং মনে হয় যে পরামর্শটি ভিউ স্টেটটি বড় হলে এটি এসকিউএল এ সঞ্চয় করতে হবে। আমি খুব ভাল ডেটা সংগ্রহের সাথে একটি উইজার্ড ব্যবহার করছি যাতে আমার ভিউস্টেটটি বড়। তবে, আমি "স্টোর-ইন-ডিবি" সমাধানটি ঘুরিয়ে দেওয়ার আগে, কেউ আমার দিকে নজর দিতে পারে এবং আমার কাছে অন্য বিকল্প আছে কিনা তা বলতে পারেন?
আমি নীচের পদ্ধতিটি ব্যবহার করে প্রসবের জন্য ইমেলটি তৈরি করি:
public void SendEmailAddressVerificationEmail(string userName, string to)
{
string msg = "Please click on the link below or paste it into a browser to verify your email account.<BR><BR>" +
"<a href=\"" + _configuration.RootURL + "Accounts/VerifyEmail.aspx?a=" +
userName.Encrypt("verify") + "\">" +
_configuration.RootURL + "Accounts/VerifyEmail.aspx?a=" +
userName.Encrypt("verify") + "</a>";
SendEmail(to, "", "", "Account created! Email verification required.", msg);
}
এনক্রিপ্ট পদ্ধতিটি দেখতে এমন দেখাচ্ছে:
public static string Encrypt(string clearText, string Password)
{
byte[] clearBytes = System.Text.Encoding.Unicode.GetBytes(clearText);
PasswordDeriveBytes pdb = new PasswordDeriveBytes(Password, new byte[] { 0x49, 0x76, 0x61, 0x6e, 0x20, 0x4d, 0x65, 0x64, 0x76, 0x65, 0x64, 0x65, 0x76 });
byte[] encryptedData = Encrypt(clearBytes, pdb.GetBytes(32), pdb.GetBytes(16));
return Convert.ToBase64String(encryptedData);
}
হটমেইলে এইচটিএমএল দেখতে কেমন তা এখানে রয়েছে:
আপনার ইমেল অ্যাকাউন্ট যাচাই করতে দয়া করে নীচের লিঙ্কটিতে ক্লিক করুন বা এটি একটি ব্রাউজারে আটকান।
প্রাপ্তির শেষে, VerifyEmail.aspx.cs পৃষ্ঠায় লাইন রয়েছে:
string username = Cryptography.Decrypt(_webContext.UserNameToVerify, "verify");
এখানে ব্যবহারকারীর নামটিও যাচাইকরণের জন্য প্রাপ্তি:
public string UserNameToVerify
{
get
{
return GetQueryStringValue("a").ToString();
}
}
এবং এখানে গেটিক্যুরিস্ট্রিংভ্যালু পদ্ধতিটি রয়েছে:
private static string GetQueryStringValue(string key)
{
return HttpContext.Current.Request.QueryString.Get(key);
}
এবং ডিক্রিপ্ট পদ্ধতিটি দেখে মনে হচ্ছে:
public static string Decrypt(string cipherText, string password)
{
**// THE ERROR IS THROWN HERE!!**
byte[] cipherBytes = Convert.FromBase64String(cipherText);
এই ত্রুটিটি কোনও কোড ফিক্সের মাধ্যমে প্রতিকার করা যেতে পারে বা আমার কি ডেটাবেসে ভিউস্টেটটি সংরক্ষণ করতে হবে?