如果你使用过asp.net 2.0开发系统的话,你一定知道他自带了一种ASP.NET 网站管理工具,我不是要说他是如何使用的,因为只要使用过asp.net 2.0开发过系统的人几乎都会用。他可以管理多个应用程序,对应用程序进行配置,还可以管理多个应用程序的成员及角色等强大功能。
但在一个应用中我也想独自拥有这样的功能,该怎末办呢?其实该工具说白了也就是一个应用程序,只是用来管理其他多个应用罢了。并且该应用程序的所有相关文件我们都是可以得到的,并可以根据自己的需要进行修改的。在安装有asp.net 2.0的机器上(win xp)会有:OS disk:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/ASP.NETWebAdminFiles/的目录,该目录下就是asp.net 网站管理工具的所有源文件了。
你可以根据自己的需要进行修改来满足自己系统的需要。
不过有时候是不需要修改多少代码的:我开发的一个系统中,我将系统的前台和后台分别建了一个项目,并且使用了asp.net自带的aspnet_regsql功能生成的成员资格管理及一些数据表。asp.net网站管理工具会根据你网站所在的目录及网站的虚拟目录来区分应用程序,你可以在第一次进入工具时看到,地址栏中传入了applicationurl和applicationp的物理地址路径。并且会将应用程序的标示符保持到数据库,这样就可以将不同应用的成员都保存到同一张表里了。但我的系统是同一个,只是分开为前后台了,管理工具可不知道我是这么做的,他只会当作是两个系统来处理,如何处理该问题呢。主要是成员管理的问题。
简单的方法,通过修改成员管理提供应用程序:
编写自己的membershipProvider就可以了,方法:
public MyMembershipProvider : SqlMembershipProvider{
public overrider string ApplicationName{
get{
return "applicationName";//返回应用程序的名称
}
}
}
然后修改应用的前台和后台的web.config文件中<membership>的提供程序为MyMembershipProvider即可。并且,Profile,Role的管理类似。这样就可以在同一个后台管理多个应用了,其实并不是多个应用,事实上是将两个应用变为一个应用来管理了。