ASP.NET Club Web Site Starter Kit扩展之一

   ASP.NET Club Web Site Starter Kit的使用很简单,功能也很强大,因此许多ASP.NET的初学者直接就拿来作为自己网站的组成部分。
    由于个人网站一般都使用的是虚拟主机,而且使用服务器提供的SQL Server2000数据库,那么在运行Club Web Site时,就需要在该SQL Server2000数据库里建立“成员-角色”等一些列表。
  但是即使你建立了这些表,在运行时仍然会发生错误,因为ASP.NET2.0 的Club Web Site Starter Kit默认使用内置的成员-角色,这样,当在代码里使用 Roles,Membership这类的方法时,你将发现Roles方法无法执行某些方法。
例如Club Web Site Starter Kit 的Global.asax里有如下一句代码:

<%@ Application Language="C#" %>

<script runat="server">

 void Application_Start(object sender, EventArgs e) {
  if (!Roles.RoleExists("Administrators")) Roles.CreateRole("Administrators");
 }
 
</script>

它表示初次运行时,需要在数据库里建立Administrators角色。
但是在执行Roles方法时,系统需要额外的权限来检测你的数据库设计是否符合执行某些SQL语句的权限。
如果你的帐户在使用SQL Server 2000具有dbo权限,那么你可以没有障碍的运行。但是一般服务商只允许你对数据库仅具有 读/写的权限,那么这时就出现上述的错误。

解决方案可以有如下两个办法
1)要求你的数据库服务商给你更多的权限。这是最简单的解决方法。你不需要更改任何设置,只要它给你一定权限即可解决。
2)自定义数据库Provider模型 
    如果数据库服务商不愿意给你更多的权限,那么我们只能自己解决。既然是ASP.NET2.0内置的功能需要SQL Server2000更多的权限,那么我们可以不用该内置的功能,而是使用自定义“成员-角色”Provider模型。这样所有的工作都在我的控制中,其中你也会看到ASP.NET2.0设计体系是多么的灵活,多容易的扩展。

本文源代码附带了天天经过扩展的Club Web Site Starter Kit。
单击下载该源代码,解压后,直接用VS.NET2005打开即可。
/Files/mqingqing123/Cws2.rar
(运行源代码后,你会发现系统使用了user,roles,userrole存放用户和角色,此处的扩展我主要实现了注册部分,其它的你可以继续扩展)

posted @ 2006-08-18 08:59  启明星工作室  阅读(743)  评论(0编辑  收藏  举报