我的 ASP.NET Web 应用程序项目中有两个文件夹“Admin”和“User”文件夹。在Admin文件夹下有一个“Admin.aspx”页面,在User文件夹下有一个“User.aspx”页面。我在 Account 文件夹下还有另一个名为“Login.aspx”的页面。对于这个登录页面,我使用了工具箱中的内置登录控件。根据字段中给出的 ID 和密码,必须调用相应的网页。例如,当我输入用户名“admin”和密码“password” (基本上是管理员用户)时,它应该加载 Admin.aspx 页面。另一方面,当用户名是“mike”,密码是“mike123”时(基本上是普通用户),应用程序应该加载 User.aspx 页面。我已经使用“ASP.NET 配置”向导为“Admin”和“User”文件夹创建了所需的访问规则。我的问题是根据输入的 id 和密码映射相应的 aspx 页面。
问问题
251 次
2 回答
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>
这只是您可以实施的众多解决方案之一。网上有很多资源可以帮助您实现这一目标。
于 2012-05-11T23:55:57.657 回答
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");
}
}
于 2012-05-11T23:42:30.787 回答