请帮助查看此代码,即使用户未处于角色应用状态也无法将用户重定向到status.aspx
if (!User.Identity.IsAuthenticated || !User.IsInRole("apply") || Session["ctre"].ToString() != "Court" || Session["userName"].ToString() == null)
{
if (!User.Identity.IsAuthenticated || Session["userName"].ToString() == null)
{
Response.Redirect("Login.aspx");
}
else
{
Response.Redirect("status.aspx");
}
}
答案 0 :(得分:0)
你的情况很糟糕。
尝试这个
if (!User.Identity.IsAuthenticated || !User.IsInRole("apply") || Session["ctre"].ToString() != "Court" || Session["userName"].ToString() == null)
{
Response.Redirect("Login.aspx");
} else
{
Response.Redirect("status.aspx");
}
答案 1 :(得分:0)
您的代码是
if (!User.Identity.IsAuthenticated || !User.IsInRole("apply") || Session["ctre"].ToString() != "Court" || Session["userName"].ToString() == null)
{
if (!User.Identity.IsAuthenticated || Session["userName"].ToString() == null)
{
Response.Redirect("Login.aspx");
}
else
{
Response.Redirect("status.aspx");
}
}
有两个if语句,两者都有类似的条件
!User.Identity.IsAuthenticated || ... Session["userName"].ToString() == null
!User.Identity.IsAuthenticated || Session["userName"].ToString() == null
这可能意味着第一个条件毫无意义,整个代码应该是
if (!User.Identity.IsAuthenticated || Session["userName"] == null)
Response.Redirect("Login.aspx");
else
Response.Redirect("status.aspx");
更新:
如果您需要检查角色,即“如果用户已经过验证但用户未处于角色中”,则“应该转到status.aspx而不是login.aspx”使用
if (!User.Identity.IsAuthenticated || Session["userName"] == null || User.IsInRole("apply"))
Response.Redirect("Login.aspx");
else
Response.Redirect("status.aspx");
答案 2 :(得分:0)
您的代码中存在重复,您可能会说它是代码冗余,请使用以下条件
if (!User.Identity.IsAuthenticated || Session["userName"] == null)
Response.Redirect("Login.aspx");
else
Response.Redirect("status.aspx");