RSS 2.0 Feed
2005-02 Entries
摘要:源码下载:http://www.telligentsystems.com/Solutions/license.aspx?File=cs_1.0_src.exe 或<http://www.telligentsystems.com/solutions/RequestDownload.aspx?Key=4afcaf173ac542a7a3>其默认的SqlScript对于中文SQL Server是有问题的,建议您使用CommunityServer1.0 Release 汉化版 中已经调试好的SQLScript,对于中文资源目录,同时建议您使用汉化版中的web目录替换源码版的web目录。 下载解压后,设置虚拟目录CS指向解压后的Web目录,如果您需要建另外的虚拟目录,也可以通过修改Community Server.sln和Web\CommunityServerWeb.csproj.webinfo中的http://localhost/CS/CommunityServerWeb.csproj路径。设置好虚拟目录后,即可直接运行Community Server.sln(需要vs.net2003)。一共有8个项目:  ...[阅读全文]

posted @ | Feedback (61) | Filed Under [ Community Server ]

摘要:AspNetForums中对于用户权限,是类似于Windows系统采用基于角色(Role)的权限控制,这样,我们就可以根据需要,设定不同的角色,设置各个角色的权限,并将各个用户属于不同的角色。根据用户所属的角色,来判断用户可以有哪些权限,进行哪些操作。 先看看数据库设计:forums_Users表,用户表,UserID为主键,唯一确定一个用户forums_Roles表,角色表,RoleID为主键,唯一确定一个角色forums_UsersInRoles表,用户和角色对应关系表,存储用户所在的角色forums_ForumPermissions表,角色在某版块的权限,记录了在每个版块中各个角色可以有权限进行哪些操作 再看看是如何来判断用户操作权限的:当用户登录后,要获取论坛所有版块的信息并缓存,在获取版块信息的同时,要获取当前用户在每个版块操作(如发表新帖、投票、附件等)的权限。操作权限有三种:"有权限"、"无权限"和"未设置",如果是未设置,那么就看这个操作的默认权限是什么。一个用户可以属于多个角色,每个角色对应的操作权限不一样,要判断这个用户有没有当前操作的权限,则遍历这个用户所属的所有角色,如果任一角色有权限,那么该用户就有该操作的权限。具体实现请参考源码:Components\Forums.cs中的GetForums(ForumContext forumContext, int userID, bool ignorePermissions, bool cacheable)方法和Components\Provider\ForumsDataProvider.cs中PopulateForumPermissionRightFromIDataReader方法。 角色和web.config的结合:Asp.Net有一个功能就是可以用于控制对 URL 资源的客户端访问(可参考QuickStart上的说明)。它对于用于生成请求的 HTTP 方法(GET 或 POST)是可配置的,并且可被配置为允许或拒绝访问用户组或角色组。这个方法也被应用到AspNetForums中,例如在admin目录(管理员操作相关页面)和Moderate目录(版主操作相关页面)下都有一个web.config目录,通过web.config,可以设定其所在目录的URL客户端访问权限。 以Admin目录下的web.config中的配置为例: <authorization>  <allow roles="Global Administrators" />  <allow roles="Site Administrators" />  <deny users="*" /> </authorization>这个表示对于属于Global Administrators角色和Site Administrators角色授权,其他任何用户都禁止访问该目录下的页面。因为对于部分页面,希望版主也可以进行访问,那么可以增加如下配置:    <location path="ForumAdmin.aspx">      <system.web>        <authorization>          <allow roles="Global Administrators" />          <allow roles="Site Administrators" />          <allow roles="Global Moderators" />          <allow roles="Site Moderators" />          <deny users="?" />        </authorization>      </system.web>    </location>    这样,对于/Admin/ForumAdmin.aspx这个URL,属于Global Moderators或Site Moderators角色的用户也可以有权访问。 怎么设置登录用户的角色?具体实现请参考源码:Components\Roles.cs 和文章《如何使用 Forms 身份验证创建 GenericPrincipal 对象》 附:CnForums源码下载...[阅读全文]

posted @ | Feedback (31) | Filed Under [ CnForums ]

摘要:Community Server1.0 Release了,不负众望,成功的将三个优秀的Asp.Net开源项目(AspNetForums、DotText和nGallery)无缝的整合到了一起,而且有非常好的扩展性,有很多地方值得我们借鉴和学习。在以后的随笔中,我将会向大家逐步介绍一些从中学习到的优秀技术和思想(限于水平和对系统的了解并不是太深入,所叙述的可能比较片面,敬请谅解,望不吝赐教)。转载注明博客堂! 先就其是如何将三个项目整合到一起简单介绍一下: AspNetForums、DotText和nGallery这三个项目架构各有特色,且每个项目有一套独立的用户管理系统。CS要整合这三个项目,要解决这样几个问题:将三个项目共同的地方提取出来;在某一个项目的架构基础上或者完全采用一个新的架构来重构;一套共用的用户管理系统。 整体上来说,CS主要还是基于AspNetForums的架构,提取了三个项目中的共用的部分做为公共项目(CommuntyServer.Components和CommuntyServer.Controls),每个项目都从这两个公共项目继承和派生(CommuntyServer.Discussions、CommuntyServer.Blogs、CommuntyServer.Galleries和CommuntyServer.GuestBooks)。对于数据库的访问,主要在CommuntyServer.SqlDataProvider项目中。 CS采用了Asp.Net2.0中的Membership来作为整个系统的用户管理系统,同时它增加了一些自己的用户属性,对用户角色增加了权限分配。 再看看CS的数据库设计,它提取了共同部分,保留了三个项目所需要的所有表,数据库中"aspnet_"开头的表和存储过程都为MemberShip所需。 CS设计非常精妙的一个地方在于cs_Groups、cs_Sections、cs_Threads和cs_Posts表(分别对应于CommuntyServer.Components命名空间下的Group、Section、Thread和Post类),熟悉AspNetForums朋友的应该都知道forums_Groups、forums_Forums、forums_Threads和forums_Posts这几个表,分别表示“版块组”、“版块”、“主题”和“帖子”。有必要先简单解释一下主题和帖子的区别,当我们在论坛发表一个帖子,自然会有人对这个帖子进行回复,那么由这个帖子和其派生的一系列回复帖子组成一个主题,一个主题由多个帖子组成。分析一下论坛、blog和相册的共同点:他们都会有分组、分类;对于每个帖子一般都有回复(对于blog来说每个随笔都有评论,对于相册来说,每个照片也都有评论),发散一下想一想,我们的很多系统,如文章新闻系统、留言板、软件下载等,也都有这些公共的因素:分组、分类、主题、帖子。当然还有一个问题,那就是这些系统虽然有共同的地方属性,但是也有不同的属性,例如照片就还要有照片的尺寸、软件就需要软件的大小类型等信息,所以在cs_Posts表里面,就增加了"PropertyNames"和"PropertyValues"这两个字段,把这些系统各自不同的属性通过序列化存储在这两个字段中。(如果您对序列化还不了解,可以参考我以前写过的两篇blog:《Asp.Net Forums中对.Net中序列化和反序列化的应用》、《MemberShip中对用户资料的序列化》)。 限于篇幅,不多赘述,以后再逐步就一些具体技术问题向大家介绍。...[阅读全文]

posted @ | Feedback (25) | Filed Under [ Community Server ]

摘要:终于Release了,但是源码还未发布。 官方英文版本因为中英文环境差异,存储过程有些小问题,汉化版在英文版本基础上,修正了存储过程在中文SQL Server的问题,将完整的中文资源文件加入。程序见附件: CS_1_CN.rar(2621K),安装说明见压缩包中的“安装说明.txt”演示地址:http://www.communityserver.cn/ CS1.0确实是一套非常棒的系统,很多地方值得我们学习和借鉴!以后我会将其中一些相关技术写成blog供大家学习和参考。 http://www.asp.net/forums 和 http://blogs.msdn.com 即将升级成CS1.0。源码及从dotText等导入到CS1.0的工具还没发布。...[阅读全文]

posted @ | Feedback (40) | Filed Under [ Community Server ]

摘要:下载(内附安装说明):http://www.CommunityServer.cn/downloads/CS_RC_1.rar在线试用(注册即开通blog/相册):http://www.communityserver.cn论坛:http://www.communityserver.cn/forums/ (中文)http://www.communityserver.org/forums/ (英文) 博客堂程序即将全面升级到CS1.0,请各位试用后提出反馈意见,将针对大家的反馈做一些修改和调整。 附:英文原版下载地址<http://www.telligentsystems.com/solutions/RequestDownload.aspx?Key=3c964f1489b64e26ba>...[阅读全文]

posted @ | Feedback (44) | Filed Under [ Community Server ]