我在网站上使用表单身份验证和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>
答案 0 :(得分:0)
您错过了默认条件,如果上述IF条件均不成立,该怎么办? 这种情况下它只会在回发后刷新当前页面。
您忘了提及 Login1_LoggedIn 背后的代码在哪个页面上?
答案 1 :(得分:0)
如果角色名称[0]不是,并且&#34;管理员&#34;会发生什么?或&#34;员工&#34;? 设置默认条件,你应该好好去。