在 ASP.NET 中实现不同角色的用户使用不同登录界面的方法
来源:互联网 发布:房产税 房价 知乎 编辑:程序博客网 时间:2024/04/29 03:54
很多用户在开发 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文件的主要内容:
在这个文件的代码中,如果ReturnUrl中含有"/admin/",就重定向到AdminLogin.aspx登录界面;否则,就重定向到 UserLogin.aspx 登录界面。
UserLogin.aspx这个文件的内容如下:
这个文件将验证信息保存后,返回最初的请求页面。注意:这里连接数据库验证用户名和密码的过程省略过去了。
AdminLogin.aspx这个文件的全部内容如下:
注意:这里连接数据库验证用户名和密码的过程省略过去了。
3,在Global的AuthenticateRequest 事件(一定要注意:不是 AuthorizeRequest 事件)里将角色信息附加到当前用户的上下文中。
4,在web.config文件中,允许登录文件的匿名访问,以便在未登录的情况下显示登录界面,注意:如果包含图片、css等文件,也需要设置这些资源允许匿名访问。
5,这样,当访问admin文件夹下的内容时,会直接转到AdminLogin.aspx界面。在登录之后,就可以在/Admin/文件夹下的页面中使用下面的方法得到当前登录的用户名和所具有的角色,根据角色来判断当前用户是否有权操作:
为了简单起见,可以写一个Admin使用的基类页面,统一在基类页面中进行权限的处理。
- 在 ASP.NET 中实现不同角色的用户使用不同登录界面的方法
- 在 ASP.NET 中实现不同角色的用户使用不同登录界面的方法
- 在 ASP.NET 中实现不同角色的用户使用不同登录界面的方法
- 在 ASP.NET 中实现不同角色的用户使用不同登录界面的方法
- 在 ASP.NET 中实现不同角色的用户使用不同登录界面的方法
- 在 ASP.NET 中实现不同角色的用户使用不同登录界面的方法
- C#根据不同的用户登录到不同的界面
- asp.net中jqgrid根据不同类别头部显示不同的列的实现方法
- C#笔记1——如何在登录界面设置主界面的ToolStripMenuItem的enabled属性,实现不同用户进入不同模块
- ASP.NET - 如何:向匿名用户和登录用户显示不同的信息
- [Web]不同的javascript 在ASP.NET中的注册方法
- asp.net中用户注册、角色分配,以及已登录用户的退出
- ASP.NET中在不同的子域中共享Session
- ASP.NET中在不同的子域中共享Session
- ASP.NET中在不同的子域中共享Session
- 在不同版本的 IIS 上使用 ASP.NET MVC
- 在不同版本的IIS下使用ASP.NET MVC
- 在不同版本的 IIS 上使用 ASP.NET MVC
- Myeclipse快捷健.很全面
- 比尔-盖茨在一个毕业典礼上给了毕业生11个人生的建议
- 学汇编相关书籍
- 如何破解邮箱密码
- 《Unix 编程艺术》 理解
- 在 ASP.NET 中实现不同角色的用户使用不同登录界面的方法
- 手工查木马基本方法
- [转]asp.net中get和set用法
- 8 张思维导图学习 Javascript —— javascript数组
- 收发Web mail邮箱邮件实现原理
- 黑客常用的一些工具
- 下落不明的生活
- 浮动窗体中的OpenGL多视图的实现
- 求助