_cuclife.com
当前位置:cuclife.com > IT > ASP.NET >

ASP.NET实现不同用户使用不同登录界面

很多用户在开发 ASP.NET 应用程序时都有这样的需求:管理员角色的账户使用管理员的登录界面进行登录,普通用户角色的账户使用普通用户的登录界面进行登录。由于ASP.NET的web.config里只能使用一个 authentication mode="Forms" 节点,所以,要实现不同用户采用不同的登录界面,一个办法就是创建一个管理员专用的虚拟目录,并设置为应用程序来实现。下面介绍另外一种采用重定向的办法来解决这个问题。

本文介绍的方法原理是根据登录界面的返回地址进行判断,然后重定向到不同的页面。下面就是实现的详细过程。

1,创建一个网站,在网站里创建Admin文件夹和User文件夹,分别存放admin和普通用户所使用的文件。也可以只设置一个 Admin 文件夹。由于本方法采用的判断返回路径的方法,所以,要能从路径中区分出哪些是admin用户使用的文件夹。当然,采用其他的判断方法也是可以的。

2,在网站根目录下分别创建3个登录文件:Login.aspx、UserLogin.aspx和AdminLogin.aspx。其中Login.aspx文件起地址转换的作用,Login.aspx文件的主要内容:

protected void Page_Load(object sender, EventArgs e)
{
String ReturnUrl = Request.QueryString["ReturnUrl"];
if (ReturnUrl == null || ReturnUrl.Equals(String.Empty))
{
//默认情况下,按普通用户进行登录
Response.Redirect("~/UserLogin.aspx");
}
else
{
if (ReturnUrl.ToLower().Contains("/admin/"))
{
Response.Redirect("~/AdminLogin.aspx?ReturnUrl=" + Server.UrlEncode(ReturnUrl));
}
else
{
Response.Redirect("~/UserLogin.aspx?ReturnUrl=" + Server.UrlEncode(ReturnUrl));
}
}

在这个文件的代码中,如果ReturnUrl中含有"/admin/",就重定向到AdminLogin.aspx登录界面;否则,就重定向到 UserLogin.aspx 登录界面。

文章来源:网络整理  本站编辑:兰特
上一篇:ASP.NET中防止页面多次提交的代码实现
下一篇:RIA应用程序开发平台Pivot 1.4 发布
评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)