<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://weblogs.asp.net/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><title type="html">Bolik</title><subtitle type="html">Bolik's Asp.net Blog</subtitle><id>http://weblogs.asp.net/bolik/atom.aspx</id><link rel="alternate" type="text/html" href="http://weblogs.asp.net/bolik/default.aspx" /><link rel="self" type="application/atom+xml" href="http://weblogs.asp.net/bolik/atom.aspx" /><generator uri="http://communityserver.org" version="3.0.20510.895">Community Server</generator><updated>2008-01-28T11:11:19Z</updated><entry><title>Interesting Finds: 2009-04-20</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/bolik/archive/2009/04/08/interesting-finds-2009-04-08.aspx" /><id>http://weblogs.asp.net/bolik/archive/2009/04/08/interesting-finds-2009-04-08.aspx</id><published>2009-04-08T12:53:09Z</published><updated>2009-04-08T12:53:09Z</updated><content type="html">Using jqGrid with ASP.NET MVC: Finally, A Solution How to improve the performances of ASP.NET MVC web applications The performance implications of the expression tree-based ActionLink helper 虚拟座谈：RIA和Ajax技术的现状与展望 5人是最佳的团队规模吗？ 建立团队信任的五种方法 高阶函数、委托与匿名方法 Andrej Bauer对于语言设计的观点 Kobe – MS New Web 2.0 Resource Kit in ASP.NET MVC and My thoughts Enterprise Library 5.0: Product Backlog prioritization results Build a menu for asp.net mvc site Step into the nRoute &amp;quot;Future Desktop&amp;quot; Demo App 隐藏接口实现 及...(&lt;a href="http://weblogs.asp.net/bolik/archive/2009/04/08/interesting-finds-2009-04-08.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7035487" width="1" height="1"&gt;</content><author><name>Bolik</name><uri>http://weblogs.asp.net/members/Bolik.aspx</uri></author></entry><entry><title>Interesting Finds: 2009-03-24</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/bolik/archive/2009/03/24/interesting-finds-2009-03-24.aspx" /><id>http://weblogs.asp.net/bolik/archive/2009/03/24/interesting-finds-2009-03-24.aspx</id><published>2009-03-24T14:44:57Z</published><updated>2009-03-24T14:44:57Z</updated><content type="html">函数式编程与协调数据结构 Database Connections with the Virtual Earth Silverlight MapControl CTP Redmine集成Mercurial MIX09 Session Videos – How I Did It Assembly Organization in MEF Exifacto – a Nicer EXIF Library for .NET New CodePlex project: MvcSiteMap – ASP.NET MVC sitemap provider An ICommand with IsEnabled Integration to Virtual Earth – Part 2 (out of 4) Integration to Virtual Earth – Part 3 (out of 4) Combine/Compress/Minify JS and CSS files in ASP.NET MVC MIX09 Sessions...(&lt;a href="http://weblogs.asp.net/bolik/archive/2009/03/24/interesting-finds-2009-03-24.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6996409" width="1" height="1"&gt;</content><author><name>Bolik</name><uri>http://weblogs.asp.net/members/Bolik.aspx</uri></author></entry><entry><title>Interesting Finds: 2009-03-21</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/bolik/archive/2009/03/22/interesting-finds-2009-03-21.aspx" /><id>http://weblogs.asp.net/bolik/archive/2009/03/22/interesting-finds-2009-03-21.aspx</id><published>2009-03-21T15:10:07Z</published><updated>2009-03-21T15:10:07Z</updated><content type="html">Mix: Mobile Web Sites with ASP.NET MVC and the Mobile Browser Definition File [译]一种简单，快速，精准的sin/cos函数模拟，及as3实现 项目常用算法之 一个C#资源池的实现 ICommand is like a chocolate cake The Undo-Redo paradox .NET 4.0 中的契约式编程 谈表达式树的缓存（5）：引入散列值...(&lt;a href="http://weblogs.asp.net/bolik/archive/2009/03/22/interesting-finds-2009-03-21.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6985934" width="1" height="1"&gt;</content><author><name>Bolik</name><uri>http://weblogs.asp.net/members/Bolik.aspx</uri></author></entry><entry><title>Interesting Finds: 2009-03-19</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/bolik/archive/2009/03/20/interesting-finds-2009-03-19.aspx" /><id>http://weblogs.asp.net/bolik/archive/2009/03/20/interesting-finds-2009-03-19.aspx</id><published>2009-03-19T15:25:21Z</published><updated>2009-03-19T15:25:21Z</updated><content type="html">Introducing Web Friendly Feeds aka Friendly Feeds Parallel Index Creation performance issue Integration to Virtual Earth – Part 1 (out of 4) MIX09 Day 1 Keynote Learn about the Virtual Earth Silverlight Map Control CTP at MIX09 Jiffycms HTML Editor V1.O released Html Select From Enum Improve page load performance in your ASP.NET MVC site 谈表达式树的缓存（4）：使用二叉搜索树（AVL树） Lightweight Automation Framework: How to create your own log Reading a Office 2007 docx file using C# and SharpZipLib...(&lt;a href="http://weblogs.asp.net/bolik/archive/2009/03/20/interesting-finds-2009-03-19.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6979586" width="1" height="1"&gt;</content><author><name>Bolik</name><uri>http://weblogs.asp.net/members/Bolik.aspx</uri></author></entry><entry><title>Interesting Finds: 2009-03-18</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/bolik/archive/2009/03/19/interesting-finds-2009-03-18.aspx" /><id>http://weblogs.asp.net/bolik/archive/2009/03/19/interesting-finds-2009-03-18.aspx</id><published>2009-03-18T15:13:23Z</published><updated>2009-03-18T15:13:23Z</updated><content type="html">SOA Agents：当网格遇上SOA 在云中做一小时测试 为什么我们要放弃Subversion 如何使用VMDK to VHD Converter转换虚拟硬盘？ 谈表达式树的缓存（3）：使用前缀树 Unexpected Behaviour with ASP.NET MVC SelectList SelectedValue Virtual Earth meets MVC ASP.Net MVC 1.0 has been released! A better Model Binder uthenticated Symmetric Encryption in .NET Two Easy Methods for Confirm Dialog with ActionLink Beginning Mocking With Moq 3 – Part 1 String Formatting in C# 动态生成rdlc 报表(原创) Cool Stuff in the System.Web.Mvc.UrlHelper Namespace! HowTo: Understanding Interfaces...(&lt;a href="http://weblogs.asp.net/bolik/archive/2009/03/19/interesting-finds-2009-03-18.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6975115" width="1" height="1"&gt;</content><author><name>Bolik</name><uri>http://weblogs.asp.net/members/Bolik.aspx</uri></author></entry><entry><title>Interesting Finds: 2009-03-17</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/bolik/archive/2009/03/14/interesting-finds-2009-03-17.aspx" /><id>http://weblogs.asp.net/bolik/archive/2009/03/14/interesting-finds-2009-03-17.aspx</id><published>2009-03-14T13:20:19Z</published><updated>2009-03-14T13:20:19Z</updated><content type="html">Importing Charts from Spreadsheets to Wordprocessing Documents ASP.NET MVC and Search Engine Optimization 思杰：下一代桌面计算的五大预测 Custom info windows with jQuery and Google Maps 虚拟项目管理：虚拟项目的特征 虚拟项目管理：虚拟项目团队的组织形式 Automatic HTML Forms Enhanced Event Viewer in VS 2008 你重构过自己的页面吗？——DOCTYPE的魔咒！（上） 你重构过自己的页面吗？——瘦身的HTML文档和臃肿的CSS代码！（中） CodePlex上TlbImp新版本发布：基于规则的自定义功能...(&lt;a href="http://weblogs.asp.net/bolik/archive/2009/03/14/interesting-finds-2009-03-17.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6960673" width="1" height="1"&gt;</content><author><name>Bolik</name><uri>http://weblogs.asp.net/members/Bolik.aspx</uri></author></entry><entry><title>Interesting Finds: 2009-03-11</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/bolik/archive/2009/03/11/interesting-finds-2009-03-11.aspx" /><id>http://weblogs.asp.net/bolik/archive/2009/03/11/interesting-finds-2009-03-11.aspx</id><published>2009-03-11T14:46:05Z</published><updated>2009-03-11T14:46:05Z</updated><content type="html">Combine/Compress/Minify JS and CSS files in ASP.NET MVC How to Export Data to Excel from an ASP.NET Application + Avoid the File Format Differ Prompt IP Address Calculations with C# (Subnetmasks, Networks, …) XSD’s in Visual Studio: Past, Present and Future Lightweight threading using C# Iterators Read an RSS feed from SSIS 告别VPN：Windows 7/2008 R2的Direct Access功能概述 尽可能摆脱对HttpContext的依赖 Using Argotic Syndication Framework with ASP.NET MVC ASP.NET Routing performance compare to HttpHandler...(&lt;a href="http://weblogs.asp.net/bolik/archive/2009/03/11/interesting-finds-2009-03-11.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6955143" width="1" height="1"&gt;</content><author><name>Bolik</name><uri>http://weblogs.asp.net/members/Bolik.aspx</uri></author></entry><entry><title>Interesting Finds: 2009-03-08</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/bolik/archive/2009/03/08/interesting-finds-2009-03-08.aspx" /><id>http://weblogs.asp.net/bolik/archive/2009/03/08/interesting-finds-2009-03-08.aspx</id><published>2009-03-08T02:40:00Z</published><updated>2009-03-08T02:40:00Z</updated><content type="html">Spiff Up Your ASP.NET MVC Forms With jQuery Chapter 6 - Understanding HTML Helpers ASP.NET MVC Recursive TreeView Helper Authorization in ASP.Net MVC using XML Configuration XSLT Transformation in ASP.net MVC framework Display hierarchical data in ASP.net MVC framework AJAX Get Request using ASP.NET MVC &amp;amp; Prototype Splitting DateTime - Unit Testing ASP.NET MVC Custom Model Binders Simple ASP.NET MVC Ajax Proxy ASP.NET MVC Action Filter for Localized Sites...(&lt;a href="http://weblogs.asp.net/bolik/archive/2009/03/08/interesting-finds-2009-03-08.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6945250" width="1" height="1"&gt;</content><author><name>Bolik</name><uri>http://weblogs.asp.net/members/Bolik.aspx</uri></author></entry><entry><title>Interesting Finds: 2009-02-07</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/bolik/archive/2009/02/24/interesting-finds-2009-02-07.aspx" /><id>http://weblogs.asp.net/bolik/archive/2009/02/24/interesting-finds-2009-02-07.aspx</id><published>2009-02-24T01:13:19Z</published><updated>2009-02-24T01:13:19Z</updated><content type="html">Principal (User) ModelBinder in ASP.NET MVC for easier testing ASP.NET MVC - Separation of Concerns with Html.RenderAction(); A Little More Sugar for Testing Routes in asp.net MVC How to use Ninject with ASP.NET MVC Compressing and obfuscating javascript and css files with YUICompressor in Visual Studio Controls Collection Cannot Be Modified Issue with ASP.NET MVC RC1 MVC DropDownList and blank options A potentially dangerous Request.Form value was detected in ASP.NET MVC Html and Uri String Encoding...(&lt;a href="http://weblogs.asp.net/bolik/archive/2009/02/24/interesting-finds-2009-02-07.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6924522" width="1" height="1"&gt;</content><author><name>Bolik</name><uri>http://weblogs.asp.net/members/Bolik.aspx</uri></author></entry><entry><title>How to use Asp.Net Mvc ActionFilterAttribute for form authentication</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/bolik/archive/2008/03/09/how-to-use-asp-net-mvc-actionfilterattribute-for-form-authentication.aspx" /><id>http://weblogs.asp.net/bolik/archive/2008/03/09/how-to-use-asp-net-mvc-actionfilterattribute-for-form-authentication.aspx</id><published>2008-03-09T07:00:00Z</published><updated>2008-03-09T07:00:00Z</updated><content type="html">&lt;P&gt;This code is my extended ActionFilterAttribute as RequireLoginAttribute and RequireRoleAttribute for form authentication, I just write the BaseController to public the Controller's RedirectToAction function for use it in extended ActionFilterAttribute.&lt;/P&gt;
&lt;P&gt;Just for fun with coding！ &lt;/P&gt;
&lt;DIV style="BORDER-RIGHT: gray 1px solid; PADDING-RIGHT: 4px; PADDING-LEFT: 4px; FONT-SIZE: 8pt; BORDER-TOP: gray 1px solid; PADDING-BOTTOM: 4px; MARGIN: 20px 0px 10px; OVERFLOW: auto; BORDER-LEFT: gray 1px solid; WIDTH: 97.5%; CURSOR: text; MAX-HEIGHT: 200px; LINE-HEIGHT: 12pt; PADDING-TOP: 4px; BORDER-BOTTOM: gray 1px solid; FONT-FAMILY: consolas, 'Courier New', courier, monospace; BACKGROUND-COLOR: #f4f4f4"&gt;&lt;PRE style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: consolas, 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; BORDER-BOTTOM-STYLE: none"&gt;&lt;SPAN style="COLOR: #0000ff"&gt;namespace&lt;/SPAN&gt; Bolik.Web.Mvc
{
  &lt;SPAN style="COLOR: #0000ff"&gt;using&lt;/SPAN&gt; System;
  &lt;SPAN style="COLOR: #0000ff"&gt;using&lt;/SPAN&gt; System.Web.Mvc;
  &lt;SPAN style="COLOR: #0000ff"&gt;using&lt;/SPAN&gt; System.Threading;

  &lt;SPAN style="COLOR: #0000ff"&gt;public&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;class&lt;/SPAN&gt; BaseController : Controller
  {   
    &lt;SPAN style="COLOR: #0000ff"&gt;protected&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;override&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;void&lt;/SPAN&gt; Execute(ControllerContext controllerContext)
    {      
      &lt;SPAN style="COLOR: #0000ff"&gt;try&lt;/SPAN&gt;
      {
        &lt;SPAN style="COLOR: #0000ff"&gt;base&lt;/SPAN&gt;.Execute(controllerContext);
      }
      &lt;SPAN style="COLOR: #0000ff"&gt;catch&lt;/SPAN&gt; (Exception e)
      {
        &lt;SPAN style="COLOR: #0000ff"&gt;if&lt;/SPAN&gt; (!(e &lt;SPAN style="COLOR: #0000ff"&gt;is&lt;/SPAN&gt; ThreadAbortException))
        {
          ViewData[&lt;SPAN style="COLOR: #006080"&gt;"ErrorMessage"&lt;/SPAN&gt;] = e.Message;
          RenderView(&lt;SPAN style="COLOR: #006080"&gt;"Error"&lt;/SPAN&gt;, ViewData);
        }
      }
    }    

    &lt;SPAN style="COLOR: #0000ff"&gt;public&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;new&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;void&lt;/SPAN&gt; RedirectToAction(&lt;SPAN style="COLOR: #0000ff"&gt;string&lt;/SPAN&gt; actionName, &lt;SPAN style="COLOR: #0000ff"&gt;string&lt;/SPAN&gt; controllerName)
    {
      &lt;SPAN style="COLOR: #0000ff"&gt;base&lt;/SPAN&gt;.RedirectToAction(actionName, controllerName);
    }
  }
  
  &lt;SPAN style="COLOR: #0000ff"&gt;public&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;class&lt;/SPAN&gt; RequireLoginAttribute : ActionFilterAttribute
  {
    &lt;SPAN style="COLOR: #0000ff"&gt;public&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;override&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;void&lt;/SPAN&gt; OnActionExecuting(FilterExecutingContext filterContext)
    {
      &lt;SPAN style="COLOR: #0000ff"&gt;if&lt;/SPAN&gt; (filterContext.Controller &lt;SPAN style="COLOR: #0000ff"&gt;is&lt;/SPAN&gt; BaseController)
      {
        var b = filterContext.Controller &lt;SPAN style="COLOR: #0000ff"&gt;as&lt;/SPAN&gt; BaseController;
        &lt;SPAN style="COLOR: #0000ff"&gt;if&lt;/SPAN&gt; (b != &lt;SPAN style="COLOR: #0000ff"&gt;null&lt;/SPAN&gt;)
        {
          &lt;SPAN style="COLOR: #0000ff"&gt;if&lt;/SPAN&gt; (!b.User.Identity.IsAuthenticated)
          {
            filterContext.Cancel = &lt;SPAN style="COLOR: #0000ff"&gt;true&lt;/SPAN&gt;;
            b.RedirectToAction(&lt;SPAN style="COLOR: #006080"&gt;"Login"&lt;/SPAN&gt;, &lt;SPAN style="COLOR: #006080"&gt;"Security"&lt;/SPAN&gt;);
          }
        }
      }
      &lt;SPAN style="COLOR: #0000ff"&gt;base&lt;/SPAN&gt;.OnActionExecuting(filterContext);
    }
  }

  &lt;SPAN style="COLOR: #0000ff"&gt;public&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;class&lt;/SPAN&gt; RequireRoleAttribute : ActionFilterAttribute
  {
    &lt;SPAN style="COLOR: #0000ff"&gt;private&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;readonly&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;string&lt;/SPAN&gt; _RoleName;

    &lt;SPAN style="COLOR: #0000ff"&gt;public&lt;/SPAN&gt; RequireRoleAttribute(&lt;SPAN style="COLOR: #0000ff"&gt;string&lt;/SPAN&gt; roleName)
    {
      _RoleName = roleName;
    }

    &lt;SPAN style="COLOR: #0000ff"&gt;public&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;override&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;void&lt;/SPAN&gt; OnActionExecuting(FilterExecutingContext filterContext)
    {
      &lt;SPAN style="COLOR: #0000ff"&gt;if&lt;/SPAN&gt; (filterContext.Controller &lt;SPAN style="COLOR: #0000ff"&gt;is&lt;/SPAN&gt; BaseController)
      {
        var b = filterContext.Controller &lt;SPAN style="COLOR: #0000ff"&gt;as&lt;/SPAN&gt; BaseController;
        &lt;SPAN style="COLOR: #0000ff"&gt;if&lt;/SPAN&gt; (b != &lt;SPAN style="COLOR: #0000ff"&gt;null&lt;/SPAN&gt;)
        {
          &lt;SPAN style="COLOR: #0000ff"&gt;if&lt;/SPAN&gt; (!b.User.IsInRole(_RoleName))
          {
            filterContext.Cancel = &lt;SPAN style="COLOR: #0000ff"&gt;true&lt;/SPAN&gt;;
            b.RedirectToAction(&lt;SPAN style="COLOR: #006080"&gt;"AccessDenied"&lt;/SPAN&gt;, &lt;SPAN style="COLOR: #006080"&gt;"Error"&lt;/SPAN&gt;);
          }
        }
      }
      &lt;SPAN style="COLOR: #0000ff"&gt;base&lt;/SPAN&gt;.OnActionExecuting(filterContext);
    }
  }
}&lt;/PRE&gt;&lt;/DIV&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=5940372" width="1" height="1"&gt;</content><author><name>Bolik</name><uri>http://weblogs.asp.net/members/Bolik.aspx</uri></author><category term="Mvc" scheme="http://weblogs.asp.net/bolik/archive/tags/Mvc/default.aspx" /><category term="ASP.Net" scheme="http://weblogs.asp.net/bolik/archive/tags/ASP.Net/default.aspx" /></entry><entry><title>My new Asp.Net blog</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/bolik/archive/2008/01/28/my-new-asp-net-blog.aspx" /><id>http://weblogs.asp.net/bolik/archive/2008/01/28/my-new-asp-net-blog.aspx</id><published>2008-01-28T03:11:19Z</published><updated>2008-01-28T03:11:19Z</updated><content type="html">&lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Thanks Joe Stagner for give me an asp.net blog. &lt;a href="http://weblogs.asp.net/Bolik/"&gt;http://weblogs.asp.net/Bolik/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;I'm a boy in china. &lt;/p&gt;  &lt;p&gt;I'm woking in http://www.xjgc.com , i like asp.net mvc, ajax,jquery,.net, etc.&lt;/p&gt;  &lt;p&gt;I just post a jQuery popup plugin on &lt;a href="http://plugins.jquery.com/project/popup" target="_blank"&gt;http://plugins.jquery.com/project/popup&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;this blog is post by Windows Live Writer. &lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=5662784" width="1" height="1"&gt;</content><author><name>Bolik</name><uri>http://weblogs.asp.net/members/Bolik.aspx</uri></author></entry></feed>