根据登录控件中输入的用户ID和密码访问相应的asp页面

时间:2012-05-11 23:04:04

标签: asp.net

我的ASP.NET Web应用程序项目中有两个文件夹“Admin”和“User”文件夹。在Admin文件夹下有一个“Admin.aspx”页面,在User文件夹下有一个“User.aspx”页面。我在Account文件夹下有另一个名为“Login.aspx”的页面。对于此登录页面,我使用了工具箱中的内置Login控件。根据字段中给出的id和密码,必须调用相应的网页。例如,当我输入用户名“admin”和密码为“password”(基本上是管理员用户)时,它应该加载Admin.aspx页面。另一方面,当用户名为“mike”且密码为“mike123”(基本上是普通用户)时,应用程序应加载User.aspx页面。我已经使用“ASP.NET配置”向导为“Admin”和“User”文件夹创建了所需的访问规则。我的问题是根据输入的id和密码映射相应的aspx页面。

2 个答案:

答案 0 :(得分:1)

您的问题有点模糊,我假设您正在使用标准的SqlMembership提供程序并进行表单身份验证。

使用网站管理工具管理登录提供了身份验证机制。我建议配置和使用用户角色来定义对网站功能的访问。

根据角色重定向到特定页面,如下所示: 处理Login控件的LoggedIn事件。

protected void LoginControl_LoggedIn(object sender, EventArgs e)
{
    try
    {

       if (HttpContext.Current.User.IsInRole("Site Admin"))
       {
          Response.Redirect("~/Admin/Admin.aspx");
       }
       else if  (HttpContext.Current.User.IsInRole("User")) 
       {
          Response.Redirect("~/User/User.aspx");
       }
    catch (Exception ex)
    {
       Debug.WriteLine("Exception in d: " + ex.Message);
       throw;
    }
}

您还需要通过web.config提供对站点安全部分之外的Login.aspx页面的访问。

<authentication mode="Forms">
  <forms name="MyApplication" loginUrl="~/Account/Login.aspx" timeout="60">
  </forms>
</authentication>

这只是您可以实施的众多解决方案之一。网上有很多资源可以帮助你实现这一目标。

答案 1 :(得分:0)

protected void Login1_LoggedIn(object sender, EventArgs e)
    {
        String[] users = Roles.GetRolesForUser(Login1.UserName);
        if (users.Contains("admin"))
        {
            Response.Redirect("~/Admin/Admin.aspx");
        }
        else if (users.Contains("users"))
        {
            Response.Redirect("~/Secure/User.aspx");
        }
    }