在我的用户通过身份验证后,尝试了解存储登录信息的最佳做法。最好使用页面级属性,会话或approch。
理想情况下,这是我希望能够在我的登录点上执行的操作点击即时通讯执行以下操作然后在我希望能够执行的每页上执行
if(userValid和IsAuhtorised,Status = Admin) 然后 否则做404我猜是最好的方法。
对不起我应该不允许使用ms内置系统。
DBContext _db = new DBContext();
UserValidationResult userStatus=_db.ValidateUser(txtUsername.Text, txtPassword.Text);
Session["level"] = userStatus.userLevel.ToString();
Session["username"] = userStatus.User.username;
Session["logedin"] = true;
if (userStatus.Status == Mercentwarehousecms.User.UserValidationResult.LStatus.InvalidPassword)
{
lblFailed.Text = "Invlaid Password";
}
if (userStatus.Status == Mercentwarehousecms.User.UserValidationResult.LStatus.UserDoesNotExist)
{
lblFailed.Text = "User Does Not Exist";
}
if (userStatus.Status == Mercentwarehousecms.User.UserValidationResult.LStatus.Sucess && userStatus.userLevel == Mercentwarehousecms.User.UserValidationResult.UserLevel.Administrator)
{
Response.Redirect("~/admin/users/default.aspx");
}
if (userStatus.userLevel == Mercentwarehousecms.User.UserValidationResult.UserLevel.StoreManager)
{
lblFailed.Text = "i AM store manager ";
}
答案 0 :(得分:0)
更改此内容:
UserValidationResult userStatus=_db.ValidateUser(txtUsername.Text, txtPassword.Text);
Session["level"] = userStatus.userLevel.ToString();
Session["username"] = userStatus.User.username;
Session["logedin"] = true;
要强>
UserValidationResult userStatus=_db.ValidateUser(txtUsername.Text, txtPassword.Text);
Session["userStatus"] = userStatus;
然后你可以检索它:
UserValidationResult userStatus = (UserValidationResult)Session["userStatus"];
我不知道你对加密的意思。如果您想保护用户的密码不以明文形式通过网络,请使用SSL。