string currentUser;
string currentPassword;
string getUserName;
string getPassword;
getUserName = Convert.ToString(Session["UserName"]);
getPassword = Convert.ToString(Session["Password"]);
currentUser = Convert.ToString(txtUserNameLogIn.Text);
currentPassword = Convert.ToString(txtPasswordLogin.Text);
if ((currentUser == getUserName ) && (currentPassword == getPassword)) {
currentUser = Convert.ToString(Session["CurrentUser"]);
currentPassword = Convert.ToString(Session["CurrentPassword"]);
Response.Redirect("Home.aspx");
} else {
lblResult.Text = "Invalid Password";
}
我有3页。第一个用于注册,保存UserName和Password所以一个Session,然后我有登录页面,应该采取UserName和Password会话,并将它们与此页面上的当前用户输入进行比较。到目前为止,我没有收到任何回复。
编辑:我在上一页上输入的用户名和密码存储在名为" UserName"的会话变量中,该人被重定向到登录页面,我只想比较哪些用户类型使用上一页的会话变量,如果正确,请将该信息存储在新的会话变量中,并将用户重定向到主页。
答案 0 :(得分:0)
你可以在这里做一些工作,假设这是一个测试项目,你知道Session不是存储纯文本凭证的正确位置。请查看SimpleMembership以获得更清晰的方法。
我创建了两个扩展类。第一个负责字符串安全性,第二个负责Session。您可以更进一步,为键或甚至SessionUser对象创建常量。在比较方面,我只是结合了用户名+密码,所以逻辑很短。
public static class StringExtensions
{
public static string Encrypt(this string plainText)
{
// Replace with your encryption impl
return plainText;
}
public static string Decrypt(this string hiddenText)
{
// Replace with your decryption impl
return hiddenText;
}
}
public static class SessionExtensions
{
public static void Set<T>(this HttpSessionState sessionState, string key, T value)
{
sessionState[key] = value;
}
public static T Get<T>(this HttpSessionState sessionState, string key) where T : class
{
return (T)sessionState[key];
}
}
public partial class _Default : Page
{
protected void Page_Load(object sender, EventArgs e)
{
Session.Set("UserName", "something");
Session.Set("Password", "something".Encrypt());
var username = Session.Get<string>("UserName");
var password = Session.Get<string>("Password").Decrypt();
var savedUser = $"{username}{password}";
var currentUser = $"somethingsomething";
if (currentUser.Equals(savedUser, StringComparison.InvariantCultureIgnoreCase))
{
}
else
{
}
}
}