public class CustomSessionIDManager : SessionIDManager
{
private static object lockObj = new object();
public override string CreateSessionID(HttpContext context)
{
lock (lockObj)
{
int? last = (int?)context.Application["LastSessionId"];
if (last == null) last = 1; else last++;
context.Application["LastSessionId"] = last;
return last.ToString();
}
}
}
HttpContext.Application 不在伺服器間共享,Web Farm 部署會導致 Session ID 衝突。
bool Login(string user, string pass, SqlConnection conn, out string errMsg)
{
var cmd = new SqlCommand("SELECT PassWord FROM UserAccount WHERE Username=@user", conn);
cmd.Parameters.Add(new SqlParameter("@user", user));
string validPass = (string)cmd.ExecuteScalar();
if (validPass == null) { errMsg = "Invalid user name"; return false; }
else if (validPass != pass) { errMsg = "Incorrect passWord"; return false; }
else { errMsg = ""; return true; }
}
15+ 分:安全專家級;11-14:優秀;7-10:合格;4-6:需加強;0-3:建議暫離鍵盤。