[ Log On ]

Pulog.net Update

作者:shawn 发表于:2009年05月16日 -- 3082天14小时8分钟前 | 分类: 生活杂记 | Comments: 4 | Views: 2842

这个星期电脑都不在我这,所以对pulog.net的开发有点放缓。不过还是有一些更新的。

主要更新有:

* 增加了对RSS的支持。各位现在可以订阅pulog.net了。地址: http://pulog.qsh.eu/feed  (这只是Pulog.net的测试。本人的blog目前还在http://imshawn.cn上。)
* 重写了评论的部分功能。由postback变为使用ajax提交评论。
* 评论增加了对部分html的支持,比如 <b> <i> <p>等,不支持的tags会被直接显示。其实应该支持bbcode,这样又安全又能让评论有格式。
* 其他若干bug fixed...

更新已经部署到http://pulog.qsh.eu上,大家有兴趣可以看看。提交评论试试? ^_^

pulog.net预览版

作者:shawn 发表于:2009年05月05日 -- 3093天19小时36分钟前 | 分类: 生活杂记 | Comments: 1 | Views: 2545

发布了一个pulog.net预览版。请点[url=http://pulog.qsh.eu]这里[/url]访问。还有很多地方需要改进。

[quote]这是pulog.net的预览版,由于自己的前台水平实在烂的可以+自己没有很好的艺术能力,页面就只能做成这个样子了。不过pulog.net将会支持换肤,到时候希望可以有人帮忙做个好看的template. :)

Anyway, pulog.net是一个很普通的博客系统,没有特别闪亮的地方。在预览版中,除了rss和pingback(好像是blog系统最重要的2个功能)没有支持外,其他基本上该有的都有了。欢迎大家发表评论/建议/意见。

pulog.net在IE8和Firefox 3测试过。不支持IE6。

ps:下面的Posts都是从以前的blog copy过来的或者一些random测试文章。仅仅是用来测试,并不具有任何意义。
[/quote]

智力题

作者:shawn 发表于:2009年04月28日 -- 3100天12小时57分钟前 | 分类: 生活杂记 | Comments: 2 | Views: 2463

17   23   37   59  下一个多少?

留言做答。请谨慎做答,答案直接反映了你的IQ!

pulog.net

作者:shawn 发表于:2009年04月28日 -- 3100天14小时43分钟前 | 分类: 生活杂记 | Comments: 4 | Views: 3284

还记得大约半年前,跟[url=http://www.imtx.cn/]TX[/url]说要一起写一个基于python+django的blog程序--[url=http://code.google.com/p/pulog/]pulog[/url],然而由于种种原因,我没能继续下去,那个blog程序基本上是TX一个人完成并且在维护的。对于当时的食言,我一直感觉非常抱歉与内疚。在这里郑重向TX道歉!

前不久,我觉得还是有必要要完成一个本该完成的东西。但是TX写的python+django的pulog已经似模似样了,我就决定了开始一项新的工程,还做一个blog程序,但是用asp.net做,用微软新发布的asp.net mvc做,并且命名为pulog.net,以纪念我当时未能加入贡献pulog的遗憾。经过前段时间的"奋战",基本功能已经实现。由于现在asp.net mvc的主机不多,所以还没有demo site。等pulog.net继续完善并且找到合适主机的时候,应该就会把现在的blog迁移过去啦。

下面是Pulog.net的features和使用的主要技术:
* 多用户博客系统,支持多用户发表文章
* 支持Categories和Tags
* 支持Templates(模板)
* 使用asp.net3.5开发.使用了asp.net mvc 1.0框架
* DAL构建于linq to sql
* 数据库支持: Sql Server2000, Sql Server2005 以及 Sql Server2008(not tested tho)

下面是TODO:
* RSS输出 -- 这个是1st priority,没有RSS的blog系统不是一个完整的blog系统
* 增加ajax支持 -- 分页和评论目前是postback的,要修改成ajax提交
* 防垃圾评论系统
* 密码保护日志

I am looking forward to Pulog.net!

asp.net Single Sign-On(SSO) from SAP [转载]

作者:shawn 发表于:2009年04月21日 -- 3107天13小时41分钟前 | 分类: 计算机 | Comments: 0 | Views: 3182

看到一篇好文章,跟公司用的技术类似。转载过来。
原文地址:http://blog.zxnn.net/2009/01/aspnet-single-sign-onsso-from-sap.html

[quote]
公司的主系统是SAP的东西,有的时候老板想要一些小的新功能或是某个部门需要一个自己使用的小系统又不想买SAP的东西(贵啊),只有自己写和使用一些第三方免费或是开源的系统,这个时候就难免涉及到Single Sign-On。而在asp.net 2.0下是非常容易实现的。有SAP提供的“Sapsecu.dll”,“sapssoext.dll”2个dll再加上由公司SAP系统提供的"verify.pse"就足够了。
第一步

复制Sapsecu.dll到system32目录,并使用Rersrv32注册。
第二步

在项目里添加对sapssoext.dll的引用,vs2005会自动生成Interop.SAPSSOEXT.dll来让.net使用。
第三步

在你项目的根目录创建sap目录,并将SAP系统那边提供的verify.pse复制过去。位置倒到不是一定要在这里,只要你找得到就好。
第四步

在 SAP系统那边,需要生成一个类似:http://yourserver/login.aspx?sso=werwerwerwe的链接,当然具体的页面需要你和那边的管理员商量来决定。这个链接是有时效性的,我在做测试的时候他们给的测试链接通常只能用一天。现在我们要做到就是我们这边的编码,在 login.aspx的page_load里面实现:
protected void Page_Load(object sender, EventArgs e)
{
  string sso= Request.QueryString["sso"];
  SAPSSOEXT.SSO2Ticket objSSO = new SAPSSOEXT.SSO2Ticket();
  objSSO.CryptLib = "sapsecu.dll";
  string strKeypath = Server.MapPath("~/sap/verify.pse");    //放在根目录比较容易找
  object tt;
  tt = objSSO.EvalLogonTicket(strTicket, strKeypath, String.Empty);    //讲了这么多废话,关键的就是要调用这个函数
  object[] ts = tt as object[];    //处理过后的其实是个对象数组,有很多东西,而我们要关心的是第一个:用户的id
  string userId = ts[0].ToString();
  loginToMySystem(userID);    //调用函数来登入自己的系统。
}
[/quote]

通过login name获取full name

作者:shawn 发表于:2009年03月26日 -- 3133天2小时47分钟前 | 分类: 技术原创 | Comments: 2 | Views: 2678

还是"激光",要获取用户全名(不是login name)。
login name可以很容易的通过Page.User.Identity.Name获取(当然是在IIS打开了IWA的情况下)。但是如果要查全名就要去AD查了。代码如下:
[FONT=Consolas]
[B][COLOR=#000080]public[/COLOR][/B] [B][COLOR=#000080]static[/COLOR][/B] [B][COLOR=#000080]string[/COLOR][/B] GetUserFullNameByLoginName([B][COLOR=#000080]string[/COLOR][/B] loginName)
[B][COLOR=#000080]{[/COLOR][/B]
     [B][COLOR=#000080]string[/COLOR][/B] userFullName = [B][COLOR=#000080]null[/COLOR][/B];
     [B][COLOR=#000080]using[/COLOR][/B] (PrincipalContext context = [B][COLOR=#000080]new[/COLOR][/B] PrincipalContext(ContextType.Domain))
     [B][COLOR=#000080]{[/COLOR][/B]
         [B][COLOR=#000080]using[/COLOR][/B] (UserPrincipal user = UserPrincipal.FindByIdentity(context, loginName))
         [B][COLOR=#000080]{[/COLOR][/B]
             [B][COLOR=#000080]if[/COLOR][/B] (user != [B][COLOR=#000080]null[/COLOR][/B])
             [B][COLOR=#000080]{[/COLOR][/B]
                 userFullName = user.DisplayName;
             [B][COLOR=#000080]}[/COLOR][/B]
         [B][COLOR=#000080]}[/COLOR][/B]
     [B][COLOR=#000080]}[/COLOR][/B]
     [B][COLOR=#000080]return[/COLOR][/B] userFullName;
[B][COLOR=#000080]}[/COLOR][/B]
[/FONT]

btw: 高亮用的发芽的,感觉芽发的不太好,有些Class没出来。。。

asp.net ajax调用的时候防止按钮多次被点击

最近在做"激光" -- ccc的大工程。在用户提交异步请求的时候需要禁止button被多次点击。在这里找到了解决办法,记录一下。
原文地址:http://disturbedbuddha.wordpress.com/2007/12/10/disabling-a-trigger-control-during-asynchronous-postback/
我小小改动了一下,以适合"激光"的用处。我的代码如下:


    
<script type="text/javascript">
         var pbControl = null;
         var prm = Sys.WebForms.PageRequestManager.getInstance();
         prm.add_beginRequest(BeginRequestHandler);
         prm.add_endRequest(EndRequestHandler);
         function BeginRequestHandler(sender, args) {
             pbControl = args.get_postBackElement();  //get the control causing the postback
             if (pbControl != null) {
                 if (pbControl.type == "submit") {
                     pbControl.value = "Saving...";
                     pbControl.disabled = true;
                 }
                 else {
                     pbControl.value = "Updating...";
                     pbControl.disabled = true;
                 }
             }
         }
         function EndRequestHandler(sender, args) {
             if (pbControl != null && pbControl.type == "submit") {
                 pbControl.disabled = false;
                 pbControl = null;
             }
             else {
                 pbControl.value = "";
                 pbControl.disabled = false;
                 pbControl = null;
             }
         }
</script>


Black Friday

作者:shawn 发表于:2009年03月13日 -- 3146天21小时44分钟前 | 分类: 生活杂记 | Comments: 1 | Views: 2826

很久没有写blog了,在忙吗?没。是懒吗?不是。是因为最近实在没有什么好写的。

简略地更新几条新闻吧:
1.八卦:身边几个朋友买房了。paid in cash,有钱人。
2.工作:虽然经济不景气,但是最近公司辞职的人不少。估计我也快了。
3.生活:gym还是坚持去着。对自己比较满意。
4.朋友:猪说我不记得他生日,其实我记得是3月初,只是具体忘了哪天。被鄙视了。
4.感情:无变化。

OK,狐狸昨天留言说很久没有看到可以让他看懂的blog了。那今天就写一个吧。也娱乐一下大家,顺便扫一下盲。

今天是black friday,就是所谓的黑色星期五。关于黑色星期五的定义,似乎世界各地各有些不同。美国的定义是每年感恩节的第二天(感恩节是每年11月的第四个星期四)。而世界上更广泛的对于黑色星期五的定义则是当月份的13日和星期五处于同一天时。今年的黑色星期五发生在2月、3月和11月的13日。

其实美国是一直有black friday shopping的这个概念的。因为从这天开始就是圣诞节疯狂购物的开始。也有人说这是美国一年来最繁忙的一天(reference: urbandictionary,black friday解释2)。但是也许是我孤陋寡闻,在新西兰我是从来没听说过black friday和shopping挂上什么勾的。估计是受金融危机的影响,今年的黑色星期五,商家都疯狂的推销自己的东西,打出最多的广告词就是“Unlucky for some, but lucky for you”... 想尽办法让你掏腰包。

Anyway,暂不迷信,也没钱,黑色星期五对俺没用。明天去Nick家的house warming party了。哦,还有帮胖子搬家!