我有 3 个 .ASPX 页面。他们是
`Login.aspx`
`Agent.aspx` and
`Scheduler.aspx`
用户输入凭据后,他会根据自己的角色从登录页面定向到 Agent.aspx 或 Scheduler.aspx。在Page_Load()
每个页面中,我再次检查用户的角色。如果条件不匹配,他将被重定向回 Login.aspx。
当Page_Load()
我这样导航时调用:
登录-> 代理,如果我从代理页面注销,我会被重定向到登录页面,但现在如果我进入代理页面的Page_Load()
URl,则不会加载 Agent.aspx 内部。错误是什么?
登录页面 aspx ------
public partial class LOGIN : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
txtUserName.Focus();
}
protected void btnLogin_Click(object sender, EventArgs e)
{
bool validLogin = false;
LoginHandler loginhandler = new LoginHandler();
validLogin = loginhandler.IsValidUser(txtUserName.Text.Trim(), txtPassword.Text.Trim());
int RoleId = loginhandler.FindRoleId(txtUserName.Text.Trim(), txtPassword.Text.Trim());
if (validLogin)
{
FormsAuthentication.RedirectFromLoginPage(txtUserName.Text.Trim(), false);
if (RoleId == 1)
Response.Redirect(Constant.GoToAgentView);
if (RoleId == 2)
Response.Redirect(Constant.GoToSchedulerView);
}
else
Server.Transfer(Constant.GoLoginPage);
}
}
代理aspx---
public partial class Agent : System.Web.UI.Page
{
CSBuss.Agent.AgentHandler agent = new CSBuss.Agent.AgentHandler();
LoginHandler login = new LoginHandler();
protected void Page_Load(object sender, EventArgs e)
{
string rolename = login.FindRoleName(User.Identity.Name);
if (string.Compare(rolename, "Agent", false) == 0)
{
SuccessPanel.Visible = false;
DisplayPanel.Visible = true;
txtName.Focus();
if (!IsPostBack)
{
DropDownList1.DataSource = agent.GetCabType();
DropDownList1.DataTextField = Constant.DisplayCabType; // CabType to be displayed in the list items
DropDownList1.DataValueField = Constant.DisplayCabID; // CabId of the items displayed
DropDownList1.DataBind();
}
}
else
Server.Transfer(Constant.GoLoginPage);
}
}
PS:我在 Web.config 文件中将 Enableoutputcaching 设置为 false 并将 Identity Impersonate 设置为 false