asp.net表单身份验证偶尔会重定向到default.aspx

时间:2014-09-08 19:15:05

标签: c# asp.net forms-authentication

我在网站上使用表单身份验证和asp.net登录控件。根据我必须将用户重定向到两个不同页面的角色。

代码可以正常工作,但有时它会将我带到default.aspx,它不存在,有时它会简单刷新我当前的登录页面。任何帮助表示赞赏。

这是我背后的代码

protected void Login1_LoggedIn(object sender, EventArgs e)
{
    string[] rolenames = System.Web.Security.Roles.GetRolesForUser(User.Identity.Name);
    if (rolenames.Length > 0)
    {            
        if (rolenames[0] == "Administrators")
            Response.Redirect("~/Administrators/Home.aspx");
        else if (rolenames[0] == "Employees")
            Response.Redirect("~/Employees/Home.aspx");
    }
}

以及来自web.config的标记

<authentication mode="Forms">
  <forms loginUrl="~/Login.aspx"
         slidingExpiration="true" 
         cookieless="AutoDetect"
         ></forms>
</authentication>

2 个答案:

答案 0 :(得分:0)

您错过了默认条件,如果上述IF条件均不成立,该怎么办? 这种情况下它只会在回发后刷新当前页面。

您忘了提及 Login1_LoggedIn 背后的代码在哪个页面上?

答案 1 :(得分:0)

如果角色名称[0]不是,并且&#34;管理员&#34;会发生什么?或&#34;员工&#34;? 设置默认条件,你应该好好去。