Кажется, я не могу настроить систему аутентификации в asp.net
У меня есть код для системы входа в систему:
protected void btnlogin_Click(object sender, EventArgs e)
{
PageUser myUser = new PageUser();
if (myUser.AuthenticateUser(txtUsername.Text, txtPassword.Text))
{
// entry found
HttpCookie myCookie;
DateTime now = DateTime.Now;
myCookie = new HttpCookie("UserName");
myCookie.Value = myUser.UserName;
myCookie.Expires = now.AddMinutes(30);
Response.Cookies.Add(myCookie);
myCookie = new HttpCookie("LoginID");
myCookie.Value = myUser.UserLoginID.ToString();
myCookie.Expires = now.AddMinutes(30);
Response.Cookies.Add(myCookie);
lblResult.Visible = false;
FormsAuthentication.SetAuthCookie(myUser.UserName + " " + myUser.UserLoginID.ToString(), true);
Response.Redirect("AdminView.aspx");
}
else
{
// entry not found
lblResult.Text = "<b>Invalid logon attempt<b>";
lblResult.ForeColor = System.Drawing.Color.FromName("Red");
lblResult.Visible = true;
}
}
Метод аутентификации работает нормально, но когда я не вхожу в систему, он по-прежнему позволяет мне перенаправить пользователя AdminView, даже если человек не вошел в систему.
Код, с которым я столкнулся с трудностями:
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
}
string userName = "";
string[] splits;
try
{
if (this.Page.User.Identity.IsAuthenticated)
{
splits = this.Page.User.Identity.Name.Split(new char[1] { ' ' });
userName = splits[0] + " " + splits[1];
}
else
{
Response.Redirect("default.aspx");
}
txtLoggedInUser.Text += " - " + userName;
}
catch
{
Response.Redirect("default.aspx");
}
}
Я не уверен, как написать этот код, чтобы он перенаправил человека обратно на страницу входа, когда он попытается посетить страницу администратора.