public class SharedUtility
{
public static String Encrypt(string strData)
{
if (strData != "")
{
strData = string.Format("{0}|{1}", HttpContext.Current.Session.SessionID, strData);
SHA1Managed shaM = new SHA1Managed();
Convert.ToBase64String(shaM.ComputeHash(Encoding.ASCII.GetBytes(strData)));
Byte[] encByteData;
encByteData = ASCIIEncoding.ASCII.GetBytes(strData);
String encStrData = Convert.ToBase64String(encByteData);
return encStrData;
}
else
{
return "";
}
}
public static String Decrypt(string strData)
{
if (string.IsNullOrEmpty(strData) == false)
{
Byte[] decByteData;
decByteData = Convert.FromBase64String(strData);
String decStrData = ASCIIEncoding.ASCII.GetString(decByteData);
String[] SplitValue = decStrData.Split('|');
String ReturnValue = SplitValue[1];
return ReturnValue;
}
else
{
return "";
}
}
protected void btnSign_Click(object sender, EventArgs e)
{
try
{
string UserName = TextBoxUserName.Text.Trim().Replace("'", " ");
string Password = SharedUtility.Encrypt(TextBoxPassword.Text.Trim().Replace("'", " "));
string Result = WebUsers.AuthenticateUser(UserName, Password);
if (Result.Contains("Success"))
Response.Redirect("~/Home/home.aspx", false);
else
{
divResult.Visible = true;
ResultLabel.Text = Result;
ResultLabel.Visible = true;
}
}
catch (Exception ex)
{
ResultLabel.Text = ex.Message;
}
}
}
Invalid length for a Base-64 char array or string.
先生我是新手使用这样的专业模板,我尝试越来越多的时间,并尝试在网上搜索,但没有解决方案成功
public static DataTable GetUserByUserName(string UserName)
{
try
{
string ConnectionString = ConfigurationManager.ConnectionStrings["AMLiveConnectionString"].ToString();
SqlConnection conn = new SqlConnection(ConnectionString);
SqlCommand cmd = new SqlCommand("WebUsers_GetUsersByUserName", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@UserName", UserName);
DataTable DT = new DataTable();
SqlDataAdapter Adapter = new SqlDataAdapter(cmd);
Adapter.Fill(DT);
return DT;
}
catch
{
throw;
}
}
答案 0 :(得分:0)
将您的代码更改为以下内容。希望它能起作用:
public static DataTable GetUserByUserName(string UserName)
{
DataTable DT = new DataTable();
try
{
string ConnectionString = ConfigurationManager.ConnectionStrings["AMLiveConnectionString"].ToString();
SqlConnection conn = new SqlConnection(ConnectionString);
SqlCommand cmd = new SqlCommand("WebUsers_GetUsersByUserName", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@UserName", UserName);
conn.Open();
SqlDataAdapter Adapter = new SqlDataAdapter(cmd);
Adapter.Fill(DT);
}
catch
{
throw;
}
finally{
conn.Close();
return DT;
}
}
更改是您未打开连接,并且您的返回应位于最终块中,而不是尝试