有朋友在留言时提到,所以这里放出来。我用的是sqlserver,如果是xml就得改相应的代码了。先在数据表中增加一字段:hit,给post.cs中增加一Hit字段。同时更改provider的代码,这里就不给出来了。 blogservice.cs添加UpdateHit(guid id)方法 public static void UpdateHit(guid id) { LoadProviders(); _provider.UpdateHit(id); } sqldataprovider.cs public override void UpdateHit(guid id) { string sqlQuery = ” update dbo.be_Posts set hit = hit+1 where postid=@id”; SqlHelper.ExecuteNonQuery(SqlHelper.ConnectionString, CommandType.Text, sqlQuery, new SqlParameter(“@id”, id)); } post.cs public static void UpdateHit(guid id) { Posts.Find(delegate(Post p) { return p.Id== id; }).Hit++; //更新内存数据 BlogService.UpdateHit(id); //更新数据库记录 [...]
Browsing the archives for the Asp.Net tag
该插件将评论者的IP转为地区,数据取自于http://www.ip138.com在这里表示感谢!该扩展要在CommentAdded事件上进行处理,首先添加一个字段UserArea用来保存地区。放心,这里的是异步处理的,不会造成页面的明显延迟。 代码如下: /// <summary> ///Ip2Area 的摘要说明 /// </summary> /// [Extension("IP转为地区", "1.0", "JasonYi")] public class Ip2Area { public Ip2Area() { Post.CommentAdded += new EventHandler<EventArgs>(Post_CommentAdded); } void Post_CommentAdded(object sender, EventArgs e) { Comment p = sender as Comment; if(p!=null) new HttpAsyncGetIPArea(p,”http://www.ip138.com/ips.asp”).Execute(); } } public class HttpAsyncGetIPArea { private Comment _comment; private string _url; public HttpAsyncGetIPArea(Comment c,string url) [...]
的确是个好消息!弥补了.Net在生成图表方面的不足,该控件支持winform与webform,不过按官方所言,该控件目前只有.Net formwork 3.5版。 控件下载:下载地址中文语言包下载:下载地址 Demo下载http://code.msdn.microsoft.com/mschart/Release/ProjectReleases.aspx?ReleaseId=1591赶快试用一下吧
这里的对日志加密是指输入正确密码以后才能正常访问。 示例: http://yibin.us/Archives/6035.aspx 密码:123456 针对于BlogEngine来说,可以用它丰富的插件机制来实现。 首先明确,完成这个插件需要做哪些工作: 1、数据表结构的变化。要增加密码项,“密码”字段当然是少不了了。 2、表结构的变化势必会引起Post实体类属性的变化。 3、Post.Serving时触发事件,该事件负责针对性的改变e.Body 4、认证的实现。 这里我用的是SqlServer数据库,打开be_Posts表,执行以下语句 对应地在BlogEngine.Core.Post中增加属性AccessPassword 这里的AccessPassword不为空表明该日志需要密码才能访问。当然,这里还得修改相应的数据访问层代码,来初始化AccessPassword字段。这里略去。 下一步编写插件,针对Post.Serving事件编写,全部代码: 接下来就是实现认证这一步,我采用的是实现ICallbackEventHandler接口来进行无刷新操作。 先看很简单的js代码 .cs文件中的关于ICallbackEventHandler接口的实现 OK,整个过程就是如此,很是简单吧。 同样的原理,可以实现类似于论坛的“回复后可见”同样的功能,如果想长时间维持日志的正常查看权,可将Session换成Cookie。 另外,BlogEngine默认在web.config中将enableSessionState设为了false,请一定要设为true,否则无法使用Session! 我就是没有认真看web.config,在Session的获取上大费周折。