整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

dtcms限制部分IP访问文章

dtcms限制部分IP访问文章

、新建数据表dt_ipa

二、DAL数据访问层:DTcms.DAL\article.cs

/// <summary>       
/// 获取ip       
/// </summary>       
/// <param name="ipa"></param>       
/// <returns></returns>       
public bool GetIp(string ipa) //判断是否存在ip      {    
StringBuilder strSql = new StringBuilder();           
strSql.Append("select count(1) from " + databaseprefix + "ipa");           
strSql.Append(" where ipa=@ipa ");           
SqlParameter[] parameters = {new SqlParameter("@ipa", SqlDbType.NVarChar,50)};           
parameters[0].Value = ipa;           
return DbHelperSQL.Exists(strSql.ToString(), parameters);     
}

三、BLL业务逻辑层:DTcms.BLL\article.cs

/// <summary>       
/// 是否存在于IP列表       
/// </summary>       
/// <returns></returns>       
public bool Getip(string ipa)      {           
  return dal.GetIp(ipa);      
}

四、Web.UI标签:DTcms.Web.UI\Label\article.cs

/// <summary>       
/// 是否存在于IP列表      
/// </summary>      
/// <returns></returns>       
protected bool getip()      {           
  string guestip = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"].ToString();          
  return new BLL.article().Getip(guestip);     
}

五、发布网站后,将Bin文件夹里的文件覆盖,新建频道,修改模板:*_show.html

1、新建频道:控制面板---站点管理---频道管理---新增(以kaohetongbao为例)


2、频道URL配置:


列表页kaohetongbao_all表达式:

(1)kaohetongbao_all.aspx

(2)kaohetongbao-{0}-{1}.aspx,类别ID=数字,分页页码=字符串,设置分页大小条数

列表页kaohetongbao_list表达式:

(1)kaohetongbao/{0}.aspx,类别ID=数字

(2)kaohetongbao/{0}/{1}.aspx,类别ID=数字,分页页码=字符串,设置分页大小条数

详细页kaohetongbao_show表达式:

(1)kaohetongbao/show-{0}.aspx,文章ID=数字


3、修改模板:kaohetongbao_show.html

于.NET的CMS系统,我之前已经介绍过DTcms,DTcms可以说是国内.NET开源CMS系统的领先者,但它不是今天我要介绍的主角,今天我要介绍另外一款企业级的免费开源的内容管理系统SiteServer CMS(简称SSCMS)。认识我SSCMS,也是一种巧合,之前有一个网友在留言中评论了SiteServer CMS,说这个开源系统非常不错,那时候就引起了我的注意。其实之前我也听说过SSCMS,但是一直没有深入去了解,直到最近我把系统源码下载下来,好好了研究了一番,才发现SiteServer是国产开源.NET CMS系统不可多得的佳作,说是国内做的最好的一款CMS系统之一。

SSCMS最令人佩服的事情是 开源免费企业级CMS系统,可以用于商业用途不需要支付任何的产品费用,可以说是CMS界的NopCommerce,与NopCommerce一样的开放(对NopCommerce不了解的可以看我之前的文章)。经过10多年的发展,能够一如既往,不断的更新迭代,实属难能可贵,近两年也紧跟.NET Core的步伐,更新到了.NET Core3.1版本。

SiteServer CMS 产品特性

  • 开源免费的企业级CMS
  • 网站群与多服务器发布
  • 内容多终端一体化
  • 众多功能插件,完整产品线
  • 高度灵活的权限分配
  • 全面完善的安全机制

SSCMS的源码结构:

源码目录结构清晰,项目层次较少,可读性强

运行项目:

选择SSCMS.Web项目运行,将会打开一个控制台程序,看到服务可用,则说明运行成功。

项目运行成功后,在浏览器中输入:https://localhost:5001/ss-admin/install,将自动进入网站的安装向导。

第一步:许可协议

第二步:环境检测

第三步:数据库选择,支持MySql,SqlServer,SqlList等,这里我选择SqlServer数据。

第四步:在SqlServer中创建数据,例如SS_CMS

第五步、选择刚才创建的SS_CMS数据库

第六步、缓存设置,可以选择本地缓存,也可以选择redis缓存,我这里选择了redis缓存,因为我本地已经安装了redis。如果你本地没有安装redis,可以选择本地缓存。

第七步、管理员设置,设置管理员的用户名和密码,用于后台登陆。

第八步、安装完成,点击“点击进入管理后台”

第九步、点击“点击进入管理后台”后台,进入登陆页面,输入刚才设置的管理员账号和密码

第十步、创建一个空站点,并输入站点的名称

第十一步、正式进入网站的管理后台,大功告成了!你可以看到内容管理、栏目管理、内容搜索、内容审核、素材管理、插件管理、系统管理等各大功能。

结语:SSCMS是一款优秀的内容管理系统,包含了内容管理的方方面面,可扩展性很强,非常推荐.NET开发者学习,因为它代表了国内开源.NET CMS的最高水平,更是内容网站建设的神器之一。

如果你对SSCMS项目源码感兴趣,可以关注+转发,然后私信回复“sscms”,源码发你。

在之前已经讲了几个基于.NET技术栈的CMS系统,例如dtcms、sscms,它们都是开源内容管理系统不可多得的佳作。

今天我将给大家介绍另外一个基于.NET Core + Vue.js开源的前后端分离的CMS框架LinCms,之所以要介绍这款CMS,主要是因为它的界面做工精美,并且使用了很多良好的设计理念,项目还集成了Swagger的增强版Knife4jUI,非常值得学习研究。

什么是 Lincms?

Lin-CMS 是一个基于.NET Core + Vue.js 开源的前后端分离内容管理系统框架,主旨为了帮助开发人员提高CMS的开发效率。它内置了许多常用的功能,如权限管理、用户管理、频道管理、文章管理、标签管理等,开发者只需要关注自己要开发业务即可。

开发环境

Visual Stdio 2019+,MySQL5.6+,Node.js环境。

使用的技术

  • 1、ORM使用FreeSql
  • 2、ASP.NET Core3.1+WebAPI+RESTful
  • 3、AutoMapper对象映射
  • 4、IdentityServer4身份认证框架
  • 5、JWT Json Web令牌
  • 6、Swagger和Knife4jUI
  • 7、Xunit测试框架
  • 8、Serilog日志
  • 9、AutoFac依赖注入框架
  • 10、七牛云存储
  • 11、EventBus:DotNeteCore.CAP、分布式事务

后台源码结构

  • LinCms.IdentityServer4项目:使用id4授权登录
  • LinCms.Web项目:接口API(ASP.NET Core)
  • LinCms.Application项目:应用服务
  • LinCms.Application.Contracts:DTO项目:数据传输对象,应用服务接口
  • LinCms.Infrastructure项目:基础设施,数据库持久性的操作
  • LinCms.Core项目:该应用的核心,实体类,通用操作类,AOP扩展,分页对象,基础依赖对象接口,时间扩展方法,当前用户信息,异常类,值对象
  • LinCms.Plugins项目:使用单项目实现某个业务的扩展,不是该项目的主要结构,可暂时忽略。
  • LinCms.Scaffolding项目:代码生成器
  • LinCms.Test项目:对仓储,应用服务或工具类进行测试

数据库配置

项目默认使用MySQL数据库,需要先创建数据库,然后执行数据库脚本,记得修改数据库连接的账号密码。

后台项目运行

项目代码编译通过后,直接运行LinCms.Web项目,就会打开下面的控制台程序,并自动打开Knife4jUI或者Swagger,证明接口服务运行成功。(源码既提供了SwaggerUI的集成,也提供了 knife4j集成)

运行http://localhost:5000/,将打开Swagger。

关于Knife4jUI

knife4j UI 是swagger ui 库的增强版本,支持 .NET Core3.0+或.NET Standard2.0。运行效果如下,使用knife4jUI调试接口非常方便,功能比Swagger要强大一些。

前端项目源码

运行前端项目,必须先装好Node.js环境,另外需要对Vue.js有一定的了解。

使用:npm install命令下载项目的依赖包
使用:npm run serve 命令运行项目。

后台登录页

后台登陆默认账号: admin, 密码:123qwe

后台首页

频道管理

标签管理

框架提供了很多自定义组件页面

结语:Lincms是一款优秀的前后端分离的内容管理系统,界面精美,功能齐全,可扩展性很强,非常适合网站项目的开发。

另外想了解更多Knife4jUI的知识,请点击程序员需要知道的Knife4j UI,Swagger的增强版。

如果你对Lincms项目源码感兴趣,可以关注+转发,然后私信回复“lincms”,源码发你。