asp.Netのしたウェブサイトのアカウントは登録した後に登録して使いませんでした
7647 ワード
最近ではデータベースにログインするためのアイテムを作成し、Aログイン後にログインステータスを保持し、個人情報はセッションに存在するが、不思議なことに、あるユーザーがログインして他のパソコンで上記のページを開くと、Aログインステータスも表示され、ログアウトしても始まらない.以前はまだ号を取っていた.大神を求めましょう.以下はBasePageのコードで、ログインを検証する必要がある他のページはこのクラスを継承します.
以下はログインページのログイン方法のコードです
次はログアウト方法のコードです
public class BasePage : System.Web.UI.Page
{
//protected User_Info Uinfo = new User_Info();
//
public static User_Info currUser = null;
protected void Page_PreInit(object sender, System.EventArgs e)
{
if (currUser == null && Session["UserInfo"] != null)
{
currUser = (User_Info)Session["UserInfo"];
}
else
{
if (currUser == null)
{
Response.Cookies.Add(new HttpCookie("_URL_REFERRER", Request.Url.ToString()));
System.Web.HttpContext.Current.Response.Redirect("../Admin/Login.aspx");
Response.End();
}
else
Session["UserInfo"] = currUser;
}
}
}
以下はログインページのログイン方法のコードです
private void btnLogin_Click(object sender, System.Web.UI.ImageClickEventArgs e)
{
string userName = Pwl.Common.PageValidate.InputText(txtUsername.Value.Trim(), 30);
string Password = Pwl.Common.PageValidate.InputText(txtPass.Value.Trim(), 30);
//Password = Pwl.DBUtility.DESEncrypt.Encrypt(Password);
//Password = "1";
Pwl.Model.User_Info userInfo = Pwl.DAL.User_Info.Instance.UserAuthorize(userName, Password);
if (userInfo != null)
{
Session["UserInfo"] = userInfo;
if (Pwl.DAL.User_Authority.Instance.IsAdmin((int)Pwl.Common.Pwl_Right. , userName))
{
Response.Redirect("Index.aspx");
}
if (Request.Cookies["_URL_REFERRER"] != null)
{
String strUrlReferrer = Request.Cookies["_URL_REFERRER"].Value;
Response.Cookies["_URL_REFERRER"].Expires = DateTime.Now.AddDays(-2);
// Cookie
Response.Redirect(strUrlReferrer);
}
else
{
Response.Redirect("../Portal/UserMessage.aspx");
}
}
this.lblMsg.Text = " !";
}
次はログアウト方法のコードです
//
protected void lbtLoginOut_Click(object sender, EventArgs e)
{
Session.Remove("UserInfo");
Pwl.Common.BasePage.currUser = null;
Response.Redirect("../Default.aspx");
}