0

您好,我的登录页面有问题。
场景是,
例如,我去 www.mydomain.com/admin/ 它将我重定向到带有 ReturnURL 参数的登录页面,如下所示。www.mydomain.com/login.aspx?ReturnURL=%2fAdmin%2f。
我正在使用管理员帐户登录,一切正常。
但是如果我直接去 Login.aspx 这意味着没有 ReturnURL QueryString 字段。
我使用相同的管理员帐户登录,但是当我登录后尝试访问 www.mydomain.com/admin/ 时,它会将我重定向回登录页面。

我正在做这样的导航。我错过了什么?

//The code block that is logging in admin.
//check if there is a ReturnURL
if (QueryStringTool.IsExistAndNotNull("ReturnURL"))
{
    Session["UserType"] = UserTypes.UserType.Admin;
    Response.Redirect(FormsAuthentication.GetRedirectUrl(txtUserName.Text.Trim(), false));
}
//ReturnURL doesn't exists.
else
{
    FormsAuthentication.SetAuthCookie(txtUserName.Text, cbUserRememberMe.Checked);
    Response.Redirect("/Admin/Default.aspx");
}
4

2 回答 2

1

这是一个示例 web.config

<configuration>
   <system.web>
   <authentication mode="Forms">
      <forms 
      name="401kApp" 
      loginUrl="/login.aspx"
      cookieless="AutoDetect"
      defaultUrl="myCustomLogin.aspx">
      <credentials passwordFormat = "SHA1">   
         <user name="UserName" 
         password="07B7F3EE06F278DB966BE960E7CBBD103DF30CA6"/>
      </credentials>   
      </forms>
   </authentication>
   </system.web>
</configuration><br/>

设置 或 您可以使用defaultUrl="yourdefaultpageURL"FormsAuthentication.RedirectFromLoginPage方法(字符串,布尔值)web.config

于 2011-05-15T09:25:42.660 回答
1

现在试试这个。替换你的代码

//check if there is a ReturnURL

    if (QueryStringTool.IsExistAndNotNull("ReturnURL"))
    {
        Session["UserType"] = UserTypes.UserType.Admin;
        Response.Redirect(FormsAuthentication.GetRedirectUrl(txtUserName.Text.Trim(), false));
    }
    //ReturnURL doesn't exists.
    else
    {
        FormsAuthentication.SetAuthCookie(txtUserName.Text, cbUserRememberMe.Checked);
        Response.Redirect("/Admin/Default.aspx");
    }

有了这个

if("Check if User Is Authentic")
{
Session["UserType"] = UserTypes.UserType.Admin;
FormsAuthentication.RedirectFromLoginPage(txtUserName.Text, cbUserRememberMe.Checked);
}

这将适用于您的整个代码。将经过身份验证的用户重定向回最初请求的 URL 或默认 URL。如果用户随后将他重定向到管理页面,
请检查Default页面Load事件Session["UserType"]Admin

于 2011-05-15T11:01:06.857 回答