Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在asp.net中使用两个默认URL实现RedirectFromLoginPage_Asp.net - Fatal编程技术网

在asp.net中使用两个默认URL实现RedirectFromLoginPage

在asp.net中使用两个默认URL实现RedirectFromLoginPage,asp.net,Asp.net,我正在asp.net上工作,员工和学生有两个登录页面。登录成功后,用户将进入欢迎页面。但问题是,如果身份验证成功,我使用了RedirectFromLoginPage。下面是相关代码 protected void Buttontbl1_Click(object sender, EventArgs e) { if (AuthenticateUser(Textusertbl1.Text,textpastbl1.Text)) {

我正在asp.net上工作,员工和学生有两个登录页面。登录成功后,用户将进入欢迎页面。但问题是,如果身份验证成功,我使用了RedirectFromLoginPage。下面是相关代码

        protected void Buttontbl1_Click(object sender, EventArgs e)
        {

        if (AuthenticateUser(Textusertbl1.Text,textpastbl1.Text))
        {
            FormsAuthentication.RedirectFromLoginPage(Textusertbl1.Text, CheckBoxtbl1.Checked);

        }
        else
        {
           errorlbl.Text="Invalid Username or Password";
        }

       }
我已经将默认URL设置为WelcomeStaff.aspx,因此如果身份验证成功,用户将被重定向到该URL。这是Web.config文件中的代码

      <authentication mode="Forms">
      <forms loginUrl="SelectUser.aspx" defaultUrl="welcomeStaff.aspx"/>
      </authentication>
        <authorization>
       <deny users="?"/>
     </authorization>
因此,我需要实施以下内容:

我想为另一个登录相同

-如果身份验证成功,则必须将用户重定向到DefaultUrl=WelcomeStudent.aspx

对于一个登录页面来说效果很好,但是我不知道如何实现两个aspx页面

那么,两个aspx文件可以有两个defaultUrl吗?有没有其他方法可以实现?我不熟悉asp.net.Plz帮助。提前谢谢


我通常处理这种情况的方法是将该应用程序配置为返回重定向页面,例如:redirection.aspx,该页面将检查用户是否经过身份验证,如果是,将根据is角色将用户重定向到另一个页面。例:

if (User.Identity.IsAuthenticated)
{
  if(User.IsInRole("Student"))
  {
    Response.Redirect("WelcomeStudent.aspx");
    return;
  }
  else if(User.IsInRole("Staff")
  {
    Response.Redirect("welcomeStaff.aspx");
    return;
  }
}

//For any other situation, return to login
FormsAuthentication.RedirectToLoginPage();

我希望这能对您有所帮助。

您能告诉我User.isinrolestuden@mberube.NetIn asp.net中的学生是什么吗?当您希望为多种类型的用户保护应用程序时,典型的方法是使用RoleProvider将用户映射到角色。然后,您可以保护资源或基于角色的业务逻辑,如我的示例中所示。如果您有任何其他方法来检查登录的用户是学生还是教职员,您可以使用自己的逻辑。