我的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页面。
答案 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");
}
}