What is New in ASP.NET 4.0 Code Access Security

Published Friday, April 23, 2010 3:37 PM

ASP.NET Code Access Security (CAS) is a feature that helps protect server applications on hosting multiple Web sites, ASP.NET lets you assign a configurable trust level that corresponds to a predefined set of permissions. ASP.NET has predefined ASP.NET Trust Levels and Policy Files that you can assign to applications, you also can assign custom trust level and policy files. Most web hosting companies run ASP.NET applications in Medium Trust to prevent that one website affect or harm another site etc.

As .NET Framework's Code Access Security model has evolved, ASP.NET 4.0 Code Access Security also has introduced several changes and improvements.

The main change in ASP.NET 4.0 CAS

In ASP.NET v4.0 partial trust applications, application domain can have a default partial trust permission set as opposed to being full-trust, the permission set name is defined in the <trust /> new attribute permissionSetName that is used to initialize the application domain . By default, the PermissionSetName attribute value is "ASP.Net" which is the name of the permission set you can find in all predefined partial trust configuration files.

<trust level="Something" permissionSetName="ASP.Net" />

This is ASP.NET 4.0 new CAS model. For compatibility ASP.NET 4.0 also support legacy CAS model where application domain still has full trust permission set.

You can specify new legacyCasModel attribute on the <trust /> element to indicate whether the legacy CAS model is enabled. By default legacyCasModel is false which means that new 4.0 CAS model is the default.

<trust level="Something" legacyCasModel="true|false"  />

In .Net FX 4.0 Config directory, there are two set of predefined partial trust config files for each new CAS model and legacy CAS model, trust config files with name legacy.XYZ.config are for legacy CAS model:

New CAS model: Legacy CAS model:
web_hightrust.config legacy.web_hightrust.config
web_mediumtrust.config legacy.web_mediumtrust.config
web_lowtrust.config legacy.web_lowtrust.config
web_minimaltrust.config legacy.web_minimaltrust.config

The figure below shows in ASP.NET 4.0 new CAS model what permission set to grant to code for partial trust application using predefined partial trust levels and policy files: 

Temp 

There also some benefits that comes with the new CAS model:

  • You can lock down a machine by making all managed code no-execute by default (e.g. setting the MyComputer zone to have no managed execution code permissions), it should still be possible to configure ASP.NET web applications to run as either full-trust or partial trust.
  • UNC share doesn’t require full trust with CASPOL at machine-level CAS policy.

Side effect that comes with the new CAS model:

  • processRequestInApplicationTrust attribute is deprecated  in new CAS model since application domain always has partial trust permission set in new CAS model.

In ASP.NET 4.0 legacy CAS model or ASP.NET 2.0 CAS model, even though you assign partial trust level to a application but the application domain still has full trust permission set.

The figure below shows in ASP.NET 4.0 legacy CAS model (or ASP.NET 2.0 CAS model) what permission set to grant to code for partial trust application using predefined partial trust levels and policy files:

Temp2 

What $AppDirUrl$, $CodeGen$, $Gac$ represents:

$AppDirUrl$

The application's virtual root directory. This allows permissions to be applied to code that is located in the application's bin directory.

For example, if a virtual directory is mapped to C:\YourWebApp, then $AppDirUrl$ would equate to C:\YourWebApp.

$CodeGen$

The directory that contains dynamically generated assemblies (for example, the result of .aspx page compiles). This can be configured on a per application basis and defaults to %windir%\Microsoft.NET\Framework\{version}\Temporary ASP.NET Files.

$CodeGen$ allows permissions to be applied to dynamically generated assemblies.

$Gac$

Any assembly that is installed in the computer's global assembly cache (GAC). This allows permissions to be granted to strong named assemblies loaded from the GAC by the Web application.

 

The new customization of CAS Policy in ASP.NET 4.0 new CAS model

1. Define which named permission set in partial trust configuration files

By default the permission set that will be assigned at application domain initialization time is the named "ASP.Net" permission set found in all predefined partial trust configuration files. However ASP.NET 4.0 allows you set PermissionSetName attribute to define which named permission set in a partial trust configuration file should be the one used to initialize an application domain.

Example: add "ASP.Net_2" named permission set in partial trust configuration file:

<PermissionSet
class="NamedPermissionSet"
version="1"
Name="ASP.Net_2">
<IPermission
class="FileIOPermission"
version="1"
Read="$AppDir$"
PathDiscovery="$AppDir$"
/>
<IPermission
class="ReflectionPermission"
version="1"
Flags ="RestrictedMemberAccess" />
<IPermission
class="SecurityPermission "
version="1"
Flags ="Execution, ControlThread, ControlPrincipal, RemotingConfiguration" />
</PermissionSet>

Then you can use "ASP.Net_2" named permission set for the application domain permission set:

<trust level="Something" legacyCasModel="false" permissionSetName="ASP.Net_2"  />


2. Define a custom set of Full Trust Assemblies for an application

By using the new fullTrustAssemblies element to configure a set of Full Trust Assemblies for an application, you can modify set of partial trust assemblies to full trust at the machine, site or application level.

The configuration definition is shown below:

<fullTrustAssemblies>
<add assemblyName="MyAssembly" version="1.1.2.3"
publicKey="hex_char_representation_of_key_blob" />
</fullTrustAssemblies>

3. Define <CodeGroup /> policy in partial trust configuration files

ASP.NET 4.0 new CAS model will retain the ability for developers to optionally define <CodeGroup />with membership conditions and assigned permission sets. The specific restriction in ASP.NET 4.0 new CAS model though will be that the results of evaluating custom policies can only result in one of two outcomes: either an assembly is granted full trust, or an assembly is granted the partial trust permission set currently associated with the running application domain. It will not be possible to use custom policies to create additional custom partial trust permission sets.

When parsing the partial trust configuration file:

  • Any assemblies that match to code groups associated with "PermissionSet='FullTrust'" will run at full trust.
  • Any assemblies that match to code groups associated with "PermissionSet='Nothing'" will result in a PolicyError being thrown from the CLR. This is acceptable since it provides administrators with a way to do a blanket-deny of managed code followed by selectively defining policy in a <CodeGroup /> that re-adds assemblies that would be allowed to run.
  • Any assemblies that match to code groups associated with other permissions sets will be interpreted to mean the assembly should run at the permission set of the appdomain. This means that even though syntactically a developer could define additional "flavors" of partial trust in an ASP.NET partial trust configuration file, those "flavors" will always be ignored.

Example: defines full trust in <CodeGroup /> for my strong named assemblies in partial trust config files:

<CodeGroup
class="FirstMatchCodeGroup"
version="1"
PermissionSetName="Nothing">
<IMembershipCondition
    class="AllMembershipCondition"
    version="1"
/>
<CodeGroup
    class="UnionCodeGroup"
    version="1"
    PermissionSetName="FullTrust"
    Name="My_Strong_Name"
    Description="This code group grants code signed full trust. ">
<IMembershipCondition
      class="StrongNameMembershipCondition"
version="1"
      PublicKeyBlob="hex_char_representation_of_key_blob"
/>
</CodeGroup>
<CodeGroup
   class="UnionCodeGroup"
version="1"
PermissionSetName="ASP.Net">
   <IMembershipCondition
class="UrlMembershipCondition"
version="1"
Url="$AppDirUrl$/*"
/>
</CodeGroup>
<CodeGroup
class="UnionCodeGroup"
version="1"
PermissionSetName="ASP.Net">
   <IMembershipCondition
class="UrlMembershipCondition"
version="1"
Url="$CodeGen$/*"
   />
</CodeGroup>
</CodeGroup>

4. Customize CAS policy at runtime in ASP.NET 4.0 new CAS model

ASP.NET 4.0 new CAS model allows to customize CAS policy at runtime by using custom HostSecurityPolicyResolver that overrides the ASP.NET code access security policy.

Example: use custom host security policy resolver to resolve partial trust web application bin folder MyTrustedAssembly.dll to full trust at runtime:

You can create a custom host security policy resolver and compile it to assembly MyCustomResolver.dll with strong name enabled and deploy in GAC:

public class MyCustomResolver : HostSecurityPolicyResolver
{
public override HostSecurityPolicyResults ResolvePolicy(Evidence evidence)
{
IEnumerator hostEvidence = evidence.GetHostEnumerator();

while (hostEvidence.MoveNext())
{
object hostEvidenceObject = hostEvidence.Current;

if (hostEvidenceObject is System.Security.Policy.Url)
{
string assemblyName = hostEvidenceObject.ToString();
if (assemblyName.Contains(“MyTrustedAssembly.dll”)
return HostSecurityPolicyResult.FullTrust;
}
}

//default fall-through
return HostSecurityPolicyResult.DefaultPolicy;
}
}

Because ASP.NET accesses the custom HostSecurityPolicyResolver during application domain initialization, and a custom policy resolver requires full trust, you also can add a custom policy resolver in <fullTrustAssemblies /> , or deploy in the GAC.

You also need configure a custom HostSecurityPolicyResolver instance by adding the HostSecurityPolicyResolverType attribute in the <trust /> element:

<trust level="Something"  
legacyCasModel="false"
hostSecurityPolicyResolverType="MyCustomResolver, MyCustomResolver"
permissionSetName="ASP.Net"
/>
 

Note:

If an assembly policy define in <CodeGroup/> and also in hostSecurityPolicyResolverType, hostSecurityPolicyResolverType will win.

If an assembly added in <fullTrustAssemblies/> then the assembly has full trust no matter what policy in <CodeGroup/> or in hostSecurityPolicyResolverType.

 

Other changes in ASP.NET 4.0 CAS

Use the new transparency model introduced in .Net Framework 4.0

  • Change in dynamically compiled code generated assemblies by ASP.NET:

In new CAS model they will be marked as security transparent level2 to use Framework 4.0 security transparent rule that means partial trust code is treated as completely Transparent and it is more strict enforcement.

In legacy CAS model they will be marked as security transparent level1 to use Framework 2.0 security transparent rule for compatibility.

You also can look at Security Changes in the .NET Framework 4 for more information about these security attributes.

Support conditional APTCA

  • If an assembly is marked with the Conditional APTCA attribute to allow partially trusted callers, and if you want to make the assembly both visible and accessible to partial-trust code in your web application, you must add a reference to the assembly in the partialTrustVisibleAssemblies section:
<partialTrustVisibleAssemblies>
<add assemblyName="MyAssembly"
publicKey="hex_char_representation_of_key_blob" />
/partialTrustVisibleAssemblies>
 
  • Most of ASP.NET products runtime assemblies are also changed to be marked as conditional APTCA to prevent use of ASP.NET APIs in partial trust environments such as Winforms or WPF UI controls hosted in Internet Explorer.

 

Differences between ASP.NET new CAS model and legacy CAS model:

Here list some differences between ASP.NET new CAS model and legacy CAS model

ASP.NET 4.0 legacy CAS model:

  • Asp.net partial trust appdomains have full trust permission
  • Multiple different permission sets in a single appdomain are allowed in ASP.NET partial trust configuration files Code groups
  • Machine CAS policy is honored
  • New configuration setting for legacy model:

<trust level="Something"
legacyCASModel="true" >
</trust>

<partialTrustVisibleAssemblies>
<add assemblyName="MyAssembly"
publicKey="hex_char_representation_of_key_blob" />
</partialTrustVisibleAssemblies>

ASP.NET 4.0 new CAS model:

  • ASP.NET will now run in homogeneous application domains. Only full trust or the app-domain's partial trust grant set, are allowable permission sets.
  • It is no longer possible to define arbitrary permission sets that get assigned to different assemblies. If an application currently depends on fine-tuning the partial trust permission set using the ASP.NET partial trust configuration file, this will no longer be possible.
  • Dynamically compiled assemblies output by ASP.NET build providers will be updated to explicitly mark assemblies as transparent.
  • ASP.NET partial trust grant sets will be independent from any enterprise, machine, or user CAS policy levels.
  • A simplified model for locking down web servers that only allows trusted managed web applications to run.
    • Machine policy used to always grant full-trust to managed code (based on membership conditions) can instead be configured using the new ASP.NET 4.0 full-trust assembly configuration section. The full-trust assembly configuration section requires explicitly listing each assembly as opposed to using membership conditions.
    • Alternatively, the membership condition(s) used in machine policy can instead be re-defined in a <CodeGroup /> within ASP.NET's partial trust configuration file to grant full-trust.
  • New configuration setting for new model:
<trust level="Something" 
legacyCASModel="false"
permissionSetName="ASP.Net"
hostSecurityPolicyResolverType=".NET type string" >
</trust>


<fullTrustAssemblies>
<add assemblyName=”MyAssemblyversion=”1.0.0.0
publicKey="hex_char_representation_of_key_blob" />
</fullTrustAssemblies>

<partialTrustVisibleAssemblies>
<add assemblyName="MyAssembly"
publicKey="hex_char_representation_of_key_blob" />
</partialTrustVisibleAssemblies>

 
 

Hope this post is helpful to better understand the ASP.Net 4.0 CAS.

Xiaohong Tang
ASP.NET QA Team

Comments

# ruven said on Saturday, November 27, 2010 1:52 PM

A simple solution that works is:

Add the following line to the webconfig

...

<trust level="Full" legacyCasModel="true" />

...

</system.web>

Regards,

www.dilowa.co.za

# ruven said on Friday, March 18, 2011 12:53 AM

PS. To get full access to the file system etc,

for example if you are using iTextSharp to create a pdf, then do not include the legacyCasModel="true.

...

<trust level="Full"  />

</system.web>

Regards,

www.dilowa.co.za

# buy runescape gold said on Monday, February 13, 2012 1:41 AM

Excellently written article, if only all bloggers offered the same content as you, the internet would be a much better place. Please keep it up!

# seo services said on Saturday, March 10, 2012 4:41 PM

Fresh thoughts, fresh view on the subject..!!

# Stromanbieter Chat said on Saturday, March 10, 2012 8:40 PM

I must admit, the webmaster has written cool..!!

# Stromanbieter Chat said on Saturday, March 10, 2012 10:02 PM

Yeah, it is clear now !... From the very beginning I did not understand where was the connection with the title !!....

# polls said on Saturday, March 10, 2012 11:24 PM

Right from this article begin to read this blog. Plus a subscriber:DD

# Basic Web Design said on Sunday, March 11, 2012 1:09 AM

Very neat blog post.Thanks Again. Awesome.

# intro maker said on Sunday, March 11, 2012 3:34 AM

Looking forward to reading more. Great article post. Will read on...

# harga koneksi internet said on Sunday, March 11, 2012 6:28 AM

Very neat blog.Much thanks again. Want more.

# windups said on Sunday, March 11, 2012 10:33 AM

Gripping! I would like to listen to the experts` views on the subject!!...

# Counter Height Dining Sets said on Sunday, March 11, 2012 11:14 AM

Somewhere in the Internet I have already read almost the same selection of information, but anyway thanks!!...

# Buy facebook fans said on Sunday, March 11, 2012 11:30 AM

I read online (computer problems) positive feedback about your resource. Didnt even believe it, and now saw myself. It turned out that I was not fooled!...

# UK IPATA pet shipper said on Sunday, March 11, 2012 11:46 AM

This article is for professionals..!

# improve memory said on Sunday, March 11, 2012 12:59 PM

Im grateful for the blog article.Thanks Again. Cool.

# juices said on Sunday, March 11, 2012 2:23 PM

Interesting. We are waiting for new messages on the same topic!!....

# educational games said on Sunday, March 11, 2012 3:12 PM

Edidn`t think about that. I'll tell my mother, she won`t believe it..!

# los angeles music live said on Sunday, March 11, 2012 3:30 PM

Thanks for all the answers:) In fact, learned a lot of new information. Dut I just didn`t figure out what is what till the end!...

# Click Here said on Sunday, March 11, 2012 4:01 PM

Im grateful for the blog.Much thanks again. Will read on...

# football betting said on Sunday, March 11, 2012 5:30 PM

I value the blog article.Much thanks again. Much obliged.

# intro maker said on Sunday, March 11, 2012 6:04 PM

Heartfelt thanks..!!

# fussball wetten said on Sunday, March 11, 2012 7:00 PM

I appreciate you sharing this post. Keep writing.

# download old iOS firmware said on Sunday, March 11, 2012 7:33 PM

Very amusing thoughts, well told, everything is in its place:DD

# Ted at 2GB said on Sunday, March 11, 2012 11:42 PM

I really enjoy the article post.Thanks Again. Much obliged.

# how to get your business on facebook said on Monday, March 12, 2012 1:17 AM

Enjoyed every bit of your post. Cool.

# how to find business on facebook said on Monday, March 12, 2012 2:50 AM

Really informative post.Thanks Again.

# saemereien said on Monday, March 12, 2012 4:26 AM

I really like and appreciate your blog article.Much thanks again. Cool.

# nerja apartments said on Monday, March 12, 2012 6:02 AM

I think this is a real great blog post.Much thanks again. Keep writing.

# Alarm System said on Monday, March 12, 2012 7:38 AM

Really informative blog article.Really looking forward to read more.

# how to make clean water from dirty water said on Monday, March 12, 2012 8:31 AM

I`m so grateful that you enlightened me and the most important thing that it happened in time. Just think, I have been using the internet for six years already but it`s the first time I`ve ever heard about it!....

# sports medicine colleges said on Monday, March 12, 2012 9:05 AM

It's pleasant sitting at work to distract from it�to relax and read the information written here:D

# opslagruimte said on Monday, March 12, 2012 9:15 AM

I subscribed to RSS, but for some reason, the messages are written in the form of some hieroglyph (How  can it be corrected?!...

# Wedding photographer Glasgow said on Monday, March 12, 2012 9:20 AM

This is one awesome blog.Really looking forward to read more. Will read on...

# Bathroom waterproofing Sydney said on Monday, March 12, 2012 9:31 AM

Yeah !... life is like riding a bicycle. You will not fall unless you stop pedaling!!...

# Holy Land Treasures said on Monday, March 12, 2012 10:02 AM

Very amusing thoughts, well told, everything is in its place:D

# emergency preparedness guide said on Monday, March 12, 2012 10:05 AM

Thanks for all the answers:) In fact, learned a lot of new information. Dut I just didn`t figure out what is what till the end!....

# Wedding photographer Edinburgh said on Monday, March 12, 2012 10:57 AM

I am so grateful for your post.Much thanks again. Really Cool.

# airtel said on Monday, March 12, 2012 11:39 AM

Every time I come back here again and don`t get disappointed..!!

# online business ideas said on Monday, March 12, 2012 12:34 PM

Very good article.Thanks Again. Cool.

# bsnl broadband usage check said on Monday, March 12, 2012 1:18 PM

I envy you. The content and design of your blog is much better than mine. Who made a design for you?!....

# custom homepage said on Monday, March 12, 2012 2:11 PM

I am so grateful for your article.Thanks Again. Cool.

# empower network scam said on Monday, March 12, 2012 2:59 PM

Author, Shoot yourself a knee..!!

# coffee said on Monday, March 12, 2012 4:35 PM

I would add something else, of course, but in fact almost everything is mentioned!....

# logo template said on Monday, March 12, 2012 5:27 PM

I am so grateful for your post.Much thanks again. Really Great.

# how to lose face fat fast said on Monday, March 12, 2012 6:12 PM

Yeah� I read and I understand that I do not understand anything what it is about:DD

# Kerala India said on Monday, March 12, 2012 7:12 PM

I truly appreciate this article post.Thanks Again. Will read on...

# Junk Cars For Cash said on Monday, March 12, 2012 7:50 PM

Somewhere in the Internet I have already read almost the same selection of information, but anyway thanks!!....

# click here said on Monday, March 12, 2012 8:50 PM

wow, awesome blog.Really looking forward to read more. Really Cool.

# beats by dre earphones said on Monday, March 12, 2012 9:26 PM

Good! Wish everybody wrote so:DD

# battery said on Monday, March 12, 2012 10:29 PM

Thanks-a-mundo for the post.Thanks Again. Keep writing.

# get fans on facebook said on Monday, March 12, 2012 11:00 PM

Yet, much is unclear. Could you describe in more details!....

# help sell my home said on Tuesday, March 13, 2012 12:23 AM

Fresh thoughts, fresh view on the subject..!!

# Stromanbieter Chat said on Tuesday, March 13, 2012 1:53 AM

I really enjoy the article.Thanks Again. Really Great.

# Citylifedeals said on Tuesday, March 13, 2012 3:31 AM

Say, you got a nice blog.Really looking forward to read more. Awesome.

# Sell my house fast said on Tuesday, March 13, 2012 3:33 AM

Author, keep doing  in the same way..!!

# Where To Find Gold said on Tuesday, March 13, 2012 5:06 AM

Informative, but not convincing. Something is missing but what I can not understand. But I will say frankly: bright and benevolent thoughts!....

# Ewing Stucco Wall Systems said on Tuesday, March 13, 2012 6:38 AM

Edidn`t think about that. I'll tell my mother, she won`t believe it..!!

# Pro Flight Simulator download said on Tuesday, March 13, 2012 6:49 AM

Thanks again for the post. Fantastic.

# how to get more facebook fans said on Tuesday, March 13, 2012 8:13 AM

I`m so grateful that you enlightened me and the most important thing that it happened in time. Just think, I have been using the internet for six years already but it`s the first time I`ve ever heard about it!....

# iPhone 5 said on Tuesday, March 13, 2012 9:49 AM

Thanks for all the answers:) In fact, learned a lot of new information. Dut I just didn`t figure out what is what till the end!....

# iPhone 5 release date said on Tuesday, March 13, 2012 11:27 AM

Thanks:) Cool topic, write more often! You manage with it perfctly:DD

# Metal Buildings said on Tuesday, March 13, 2012 12:38 PM

Thanks so much for the article post.Really looking forward to read more. Really Great.

# acrylic photo blocks said on Tuesday, March 13, 2012 1:04 PM

I was looking for the report  in Yandex and suddenly came across this page. I found a little information on my topic of my report. I would like more, and thanks for that..!!

# fumigar viviendas said on Tuesday, March 13, 2012 2:42 PM

Yeah, in my opinion, it is written on every fence!!....

# plastic surgery Nashville said on Tuesday, March 13, 2012 3:41 PM

Really appreciate you sharing this blog.Really looking forward to read more. Much obliged.

# promotional items ideas said on Tuesday, March 13, 2012 4:39 PM

Author, Shoot yourself a knee..!!

# Merchant Services said on Tuesday, March 13, 2012 5:52 PM

Thanks a lot for the article post.Much thanks again. Great.

# iPhone repair said on Tuesday, March 13, 2012 5:56 PM

I really like and appreciate your article post. Fantastic.

# agen bola online said on Tuesday, March 13, 2012 6:19 PM

Well, actually, a lot of what you write is not quite true !... well, okay, it does not matter:DD

# above and beyond warfield said on Tuesday, March 13, 2012 7:01 PM

Really informative article. Really Cool.

# fix credit said on Tuesday, March 13, 2012 7:55 PM

Totally agree with you, about a week ago wrote about the same in my blog..!!

# hearing aid said on Tuesday, March 13, 2012 9:16 PM

Enjoyed every bit of your blog article.Really looking forward to read more. Will read on...

# ups said on Tuesday, March 13, 2012 9:35 PM

I must admit, the webmaster is a cool guy..!!

# DUI Attorney said on Tuesday, March 13, 2012 11:12 PM

I read online (computer problems) positive feedback about your resource. Didnt even believe it, and now saw myself. It turned out that I was not fooled!....

# Mobilt bredb&#229;nd priser said on Wednesday, March 14, 2012 12:41 AM

Very neat post. Keep writing.

# web design said on Wednesday, March 14, 2012 12:52 AM

I am getting married on the 15th of November. Congratulate me! Then will be here rarely!....

# rv warranties said on Wednesday, March 14, 2012 4:08 AM

Yet, much is unclear. Could you describe in more details!....

# latest hindi movie songs said on Wednesday, March 14, 2012 5:47 AM

Yeah, now it's clear !... And firstly I did not understand very much where there was the link with the title itself !!....

# wholesale glassware said on Wednesday, March 14, 2012 5:56 AM

I value the blog. Awesome.

# chicken alfredo pasta said on Wednesday, March 14, 2012 5:58 AM

I truly appreciate this article.Really looking forward to read more. Want more.

# company logo said on Wednesday, March 14, 2012 7:11 AM

I value the blog article.Much thanks again. Will read on...

# Truck Accident Injury Lawyer said on Wednesday, March 14, 2012 7:29 AM

I subscribed to RSS, but for some reason, the messages are written in the form of some hieroglyph (How  can it be corrected?!....

# house said on Wednesday, March 14, 2012 9:12 AM

Yet, much is unclear. Could you describe in more details!....

# target gift cards said on Wednesday, March 14, 2012 9:40 AM

Very good blog.Really looking forward to read more. Great.

# online dating said on Wednesday, March 14, 2012 10:51 AM

Enjoyed every bit of your blog article. Great.

# kitchen safety said on Wednesday, March 14, 2012 10:57 AM

See it for the first time!!....

# Toronto Photographer said on Wednesday, March 14, 2012 12:38 PM

I appreciate you sharing this article post. Want more.

# window regulator said on Wednesday, March 14, 2012 12:45 PM

Author, Shoot yourself a knee..!!

# Car Rental Costa Rica said on Wednesday, March 14, 2012 2:03 PM

I think this is a real great article.

# marketing said on Wednesday, March 14, 2012 2:23 PM

Major thanks for the blog article.Much thanks again. Great.

# afvallen in een week met mdp said on Wednesday, March 14, 2012 2:35 PM

Last a few years has been to Ibiza, so met a person there whose style of presentation is very similar to yours. But, unfortunately, that person is too far from the Internet!....

# abercrombie uk said on Wednesday, March 14, 2012 3:08 PM

I think this is a real great article.Really looking forward to read more. Fantastic.

# advertising and money making opportunity said on Wednesday, March 14, 2012 4:08 PM

Thanks so much for the post.Much thanks again. Much obliged.

# ilemi.com said on Wednesday, March 14, 2012 4:25 PM

See it for the first time!!....

# cheap beats by dre headphones said on Wednesday, March 14, 2012 5:20 PM

Muchos Gracias for your blog article. Great.

# learn piano said on Wednesday, March 14, 2012 6:25 PM

Hey, thanks for the blog post. Much obliged.

# Plastic Surgery SEO said on Wednesday, March 14, 2012 10:06 PM

Thanks a lot! An extremely interesting comment!!....

# ECig Brand said on Wednesday, March 14, 2012 10:50 PM

Say, you got a nice blog article.Thanks Again. Really Great.

# Yes To Carrots said on Thursday, March 15, 2012 1:36 AM

Great, thanks for sharing this blog article.Thanks Again. Fantastic.

# local conservatory fitter said on Thursday, March 15, 2012 6:26 AM

Thanks for all the answers:) In fact, learned a lot of new information. Dut I just didn`t figure out what is what till the end!...

# Wordpress templates said on Thursday, March 15, 2012 6:54 AM

Uh, well, explain me a please, I am not quite in the subject, how can it be?!...

# sacramento limo service ca said on Thursday, March 15, 2012 7:00 AM

Thanks:) Cool topic, write more often! You manage with it perfctly:D

# keeping chickens said on Thursday, March 15, 2012 7:08 AM

Can be also this issue because the truth can be achieved only in a dispute :D

# Home Lighting said on Thursday, March 15, 2012 9:18 AM

Thanks so much for the blog.

# Diamond Simulated said on Thursday, March 15, 2012 10:26 AM

Really appreciate you sharing this article.Much thanks again. Really Cool.

# www.goldsilverfactor.com said on Thursday, March 15, 2012 11:16 AM

The Author is crazy..!

# short sale vs foreclosure said on Thursday, March 15, 2012 11:19 AM

The topic is pretty complicated for a beginner!....

# implantologia firenze said on Thursday, March 15, 2012 11:33 AM

Im thankful for the article post.Thanks Again. Will read on...

# Binary Options Strategy said on Thursday, March 15, 2012 12:28 PM

I really enjoy the blog.Thanks Again.

# National Interest Waiver said on Thursday, March 15, 2012 4:23 PM

Thanks for the news! Just was thinking about it! By the way Happy New Year to all of you:DD

# fulvio zocca junior said on Thursday, March 15, 2012 6:02 PM

I envy you. The content and design of your blog is much better than mine. Who made a design for you?!....

# make money online said on Thursday, March 15, 2012 7:35 PM

Thanks for all the answers:) In fact, learned a lot of new information. Dut I just didn`t figure out what is what till the end!....

# victoria secret gift cards said on Thursday, March 15, 2012 9:10 PM

Author, Shoot yourself a knee..!!

# Denver DUI Lawyer said on Friday, March 16, 2012 6:59 AM

I loved your blog article.Much thanks again. Want more.

# learning piano said on Friday, March 16, 2012 7:56 AM

Thanks for the post.Thanks Again. Great.

# buy indocin cheap said on Friday, March 16, 2012 10:34 AM

Thanks a lot! An extremely interesting comment!!...

# Championship Trophies said on Friday, March 16, 2012 10:55 AM

Sent the first post, but it wasn`t published. I am writing the second. It's me, the African tourist..

# learn piano said on Friday, March 16, 2012 2:30 PM

Thanks for the article post.Thanks Again. Will read on...

# samsung security said on Friday, March 16, 2012 3:43 PM

Looking forward to reading more. Great blog post.Really looking forward to read more. Will read on...

# Cake Topper said on Friday, March 16, 2012 3:48 PM

I do`t regret that spent a few of minutes for reading. Write more often,  surely'll come to read something new!....

# Ice Dam Prevention said on Friday, March 16, 2012 5:30 PM

Muchos Gracias for your blog article. Really Cool.

# First Aid Bag said on Friday, March 16, 2012 5:57 PM

I am amazed  with the abundance of interesting articles on your site! The author - good luck and wish you the new interesting posts..!!

# E-Cig Brand Starter Kit said on Friday, March 16, 2012 6:38 PM

wow, awesome blog article.Much thanks again. Really Great.

# big ben view said on Saturday, March 17, 2012 11:08 AM

However, the author created a cool thing..!!

# target gift card said on Saturday, March 17, 2012 11:47 AM

Major thankies for the blog. Will read on...

# hoteles en bariloche said on Saturday, March 17, 2012 4:43 PM

Enjoyed every bit of your article.Really looking forward to read more. Awesome.

# hoteles en roma said on Saturday, March 17, 2012 4:44 PM

I truly appreciate this blog post.Much thanks again. Really Great.

# hotel overlooking big ben said on Saturday, March 17, 2012 4:47 PM

Honestly, not bad news!....

# hotel en bariloche said on Saturday, March 17, 2012 7:25 PM

I think this is a real great article post. Really Cool.

# wwwemagrecer said on Saturday, March 17, 2012 8:06 PM

See it for the first time!!....

# boys rain boots said on Saturday, March 17, 2012 10:19 PM

I really enjoy the article post.Really looking forward to read more. Want more.

# Barn Lights said on Sunday, March 18, 2012 12:35 AM

Thanks-a-mundo for the article post. Really Great.

# anti aging skin treatments said on Sunday, March 18, 2012 2:41 AM

Im thankful for the article.Much thanks again. Really Great.

# webdesign said on Sunday, March 18, 2012 4:42 AM

Yeah� I read and I understand that I do not understand anything what it is about:DD

# map of old montreal said on Sunday, March 18, 2012 5:26 AM

Interesting, but still I would like to know more about it. Liked the article:DD

# legititimate work online said on Sunday, March 18, 2012 6:10 AM

Thanks for the article! I hope the author does not mind if I use it for my course work!....

# photo booth rental Toronto said on Sunday, March 18, 2012 6:54 AM

Fresh thoughts, fresh view on the subject..!!

# gokkasten said on Sunday, March 18, 2012 7:17 AM

I really enjoy the blog article. Great.

# gokkasten said on Sunday, March 18, 2012 8:25 AM

Very neat article.Thanks Again. Much obliged.

# tragamonedas said on Sunday, March 18, 2012 9:16 AM

Thanks so much for the post.Really looking forward to read more. Cool.

# spielautomaten said on Sunday, March 18, 2012 9:34 AM

Thanks for sharing, this is a fantastic blog.Much thanks again. Cool.

# DnB said on Sunday, March 18, 2012 10:43 AM

Really informative article.Thanks Again. Will read on...

# tragaperras said on Sunday, March 18, 2012 10:59 AM

Thanks-a-mundo for the post.Much thanks again. Will read on...

# meteorologia lisboa said on Sunday, March 18, 2012 12:47 PM

Author, keep doing  in the same way..!!

# Photography Cyprus said on Sunday, March 18, 2012 1:01 PM

Thanks for the blog.Really looking forward to read more. Much obliged.

# chicago downtown said on Sunday, March 18, 2012 3:17 PM

Im grateful for the post.Much thanks again. Cool.

# outpatient chemical dependency treatment centers said on Sunday, March 18, 2012 4:12 PM

I really liked your blog post.

# Types of Personality said on Sunday, March 18, 2012 4:26 PM

Really enjoyed this article.Much thanks again. Will read on...

# buy zynga chips said on Sunday, March 18, 2012 7:38 PM

Im obliged for the blog article. Will read on...

# Golf Course Signs said on Sunday, March 18, 2012 7:42 PM

I really liked your article. Really Cool.

# Golf Signs said on Monday, March 19, 2012 1:05 AM

I appreciate you sharing this blog article.Much thanks again. Keep writing.

# Tech Community said on Monday, March 19, 2012 6:33 AM

Is anybody strong in radio here? We need a colleague who would tell us briefly about the transistor T2. I hope there are radio amateurs here. If it`s not on the subject at all, then I`m sorry. I have to write  because I have no choice. PS: if the spelling is not right then also I'm sorry, I'm just 13 years old!....

# work online said on Monday, March 19, 2012 7:28 AM

I really enjoy the article post.Much thanks again. Great.

# website design said on Monday, March 19, 2012 8:12 AM

I am glad that your blog is constantly evolving. Such posts only gain in popularity!....

# pure maqui berry said on Monday, March 19, 2012 9:51 AM

As I have expected, the writer blurted out..!!

# teaching overseas jobs said on Monday, March 19, 2012 9:56 AM

Awesome post.Really looking forward to read more. Keep writing.

# arquitetura sorocaba said on Monday, March 19, 2012 11:05 AM

I really like and appreciate your article.Really looking forward to read more. Will read on...

# repair relationship said on Monday, March 19, 2012 11:30 AM

Last a few years has been to Ibiza, so met a person there whose style of presentation is very similar to yours. But, unfortunately, that person is too far from the Internet!....

# personal development training said on Monday, March 19, 2012 1:11 PM

Current blog, fresh information, I read it from time to time!!....

# Golf Course Signs said on Monday, March 19, 2012 2:15 PM

Really appreciate you sharing this article.Really looking forward to read more. Fantastic.

# Dentures said on Monday, March 19, 2012 2:53 PM

Good post! Found a lot of new and interesting! Will share the link with others:DD

# SEO Norway said on Monday, March 19, 2012 3:41 PM

Wow, great blog. Fantastic.

# MUSICA CRISTIANA GRATIS said on Monday, March 19, 2012 4:38 PM

Thanks a lot! An extremely interesting comment!!....

# personal development plan template said on Monday, March 19, 2012 4:49 PM

Hey, thanks for the post.Really looking forward to read more. Really Great.

# Dentist Las Cruces said on Monday, March 19, 2012 5:58 PM

I really liked your blog post. Fantastic.

# chronic fatigue symptoms said on Monday, March 19, 2012 7:09 PM

Really informative blog article.Thanks Again. Much obliged.

# Kids Bedding said on Monday, March 19, 2012 7:17 PM

It`s really useful! Looking through the Internet you can mostly observe watered down information, something like bla bla bla, but not here to my deep surprise. It makes me happy..!!

# Harley Davidson Apparel said on Monday, March 19, 2012 7:39 PM

Thanks for sharing, this is a fantastic blog.Thanks Again. Really Cool.

# v2 cigs said on Monday, March 19, 2012 8:20 PM

Awesome blog.Much thanks again. Great.

# Labrada said on Monday, March 19, 2012 9:07 PM

Cool! You have answered. I'll take a quote! The meaning of life and everything else. Decided. No kidding!....

# Glasses Online said on Monday, March 19, 2012 9:32 PM

Very neat blog post.Much thanks again. Awesome.

# adidas chile 62 said on Tuesday, March 20, 2012 6:32 AM

I really like and appreciate your blog.Really looking forward to read more. Will read on...

# hartnell down theme song said on Tuesday, March 20, 2012 6:51 AM

I must admit, the webmaster is a cool guy..!!

# graffiti wall murals said on Tuesday, March 20, 2012 7:42 AM

I really like and appreciate your blog article.Really looking forward to read more. Really Great.

# buy google +1 said on Tuesday, March 20, 2012 8:35 AM

Good post! Found a lot of new and interesting! Will share the link with others:DD

# rv extended warranties said on Tuesday, March 20, 2012 8:52 AM

I truly appreciate this blog.Really looking forward to read more. Great.

# DUI Lawyer said on Tuesday, March 20, 2012 9:17 AM

Comrade kill yourself..

# breast cancer said on Tuesday, March 20, 2012 9:48 AM

Very informative post.Much thanks again. Want more.

# Luxury Home said on Tuesday, March 20, 2012 10:01 AM

I really enjoy the post.Much thanks again. Great.

# Luxury Home said on Tuesday, March 20, 2012 11:10 AM

Looking forward to reading more. Great post. Fantastic.

# G Rapids pizza said on Tuesday, March 20, 2012 12:00 PM

Looking forward to reading more also..

MuchAppreciated!

# get rid of acne scars fast said on Tuesday, March 20, 2012 12:02 PM

Develop the topic further! It is interesting to know more details..!!

# huguenots and walloons said on Tuesday, March 20, 2012 1:51 PM

Really appreciate you sharing this blog post.Really looking forward to read more. Much obliged.

# banner maker said on Tuesday, March 20, 2012 3:07 PM

Wow, great blog post.Much thanks again. Fantastic.

# Dental Lab said on Tuesday, March 20, 2012 3:29 PM

Yet, much is unclear. Could you describe in more details!....

# nightclub flyer design said on Tuesday, March 20, 2012 4:51 PM

Major thanks for the article post.Really looking forward to read more. Much obliged.

# blown glass chandelier said on Tuesday, March 20, 2012 5:27 PM

Im obliged for the article.Thanks Again. Want more.

# momschips said on Tuesday, March 20, 2012 6:35 PM

Hey, thanks for the blog.Much thanks again. Great.

# Waterford Mi homes for sale, said on Tuesday, March 20, 2012 6:54 PM

Left on my site a link to this post. I think many people will be interested in it..!!

# Skin vBulletin said on Tuesday, March 20, 2012 10:16 PM

52. "The road will be overcome by that person, who goes." I wish you never stopped and be creative - forever..!!

# htc unlock said on Wednesday, March 21, 2012 3:23 AM

52. "The road will be overcome by that person, who goes." I wish you never stopped and be creative - forever..!!

# nightclub flyer design said on Wednesday, March 21, 2012 5:11 AM

Is anybody strong in radio here? We need a colleague who would tell us briefly about the transistor T2. I hope there are radio amateurs here. If it`s not on the subject at all, then I`m sorry. I have to write  because I have no choice. PS: if the spelling is not right then also I'm sorry, I'm just 13 years old!....

# Binary Options Strategy said on Wednesday, March 21, 2012 5:57 AM

This is one awesome article post. Great.

# hacking said on Wednesday, March 21, 2012 6:02 AM

wow, awesome post. Fantastic.

# Home security said on Wednesday, March 21, 2012 9:33 AM

I really like and appreciate your blog post.Much thanks again. Awesome.

# google+ hangouts said on Wednesday, March 21, 2012 10:59 AM

I really liked your article post.Thanks Again.

# weight loss foods said on Wednesday, March 21, 2012 11:23 AM

Great, thanks for sharing this article.Much thanks again. Great.

# teaching jobs overseas said on Wednesday, March 21, 2012 11:50 AM

I really liked your post.Much thanks again. Want more.

# Quilted Mattress Protectors said on Wednesday, March 21, 2012 12:15 PM

Thanks for the post.Really looking forward to read more. Want more.

# Israel pilgrimage said on Wednesday, March 21, 2012 12:45 PM

I really like and appreciate your blog article.Really looking forward to read more. Will read on...

# Johan Rip&#229;s said on Wednesday, March 21, 2012 1:11 PM

I appreciate you sharing this blog article.Really looking forward to read more. Want more.

# uk business directory said on Wednesday, March 21, 2012 2:31 PM

Major thankies for the post.Really looking forward to read more. Awesome.

# banish-tinnitus.com said on Wednesday, March 21, 2012 3:31 PM

Thanks-a-mundo for the article post.Really looking forward to read more. Fantastic.

# Scotty Cameron Select Newport 2 Putter said on Wednesday, March 21, 2012 4:18 PM

Say, you got a nice blog post.Really looking forward to read more. Great.

# anime social network said on Wednesday, March 21, 2012 4:48 PM

Thanks-a-mundo for the post.Really looking forward to read more. Cool.

# crib bedding said on Wednesday, March 21, 2012 6:04 PM

Im obliged for the article. Fantastic.

# cash for cars Dallas said on Wednesday, March 21, 2012 6:34 PM

I am so grateful for your blog article.Really looking forward to read more. Great.

# Cheap wedding dresses said on Wednesday, March 21, 2012 8:27 PM

Im obliged for the article post.Thanks Again. Great.

# learn business chinese said on Wednesday, March 21, 2012 10:27 PM

I think this is a real great blog.Really looking forward to read more. Great.

# Monster Beats by Dr. Dre said on Wednesday, March 21, 2012 11:39 PM

I truly appreciate this blog post.Thanks Again. Really Great.

# joomla plugin said on Thursday, March 22, 2012 7:47 AM

Major thankies for the blog.Really looking forward to read more. Really Great.

# develop photographic memory said on Thursday, March 22, 2012 7:50 AM

It's straight to the point! You could not tell in other words! :DD

# website traffic said on Thursday, March 22, 2012 9:37 AM

Thanks for the article! I hope the author does not mind if I use it for my course work!....

# Short term accommodation in tel aviv said on Thursday, March 22, 2012 9:37 AM

Thanks for the blog.Much thanks again. Cool.

# joomla modules said on Friday, March 23, 2012 9:38 AM

I think this is a real great article.Thanks Again. Cool.

# israel apartments for rent said on Friday, March 23, 2012 1:28 PM

Say, you got a nice article.Thanks Again. Will read on...

# Check The Latest BT Infinity Deals said on Friday, March 23, 2012 3:22 PM

I am so grateful for your blog.Thanks Again. Great.

# As Seen On TV said on Monday, March 26, 2012 2:54 PM

Very neat post.Thanks Again. Great.

# Car Rental Costa Rica said on Wednesday, May 2, 2012 5:27 PM

Great post. Quite a bit of comments I see... Thanks for letting us know more about the update

# DipsQuics said on Wednesday, June 6, 2012 1:57 AM

Is it really a bag through Chloe? With the particular plain style and also inharmonious colours combination, I nearly think my personal eyes.

This ndy?Satchel inside eucalyptus buckskin is actually type of boring to appear at, however thanks to which zippered gusset in which exhibits any darker-hued cell as it makes this kind of carrier slightly interesting. It furthermore has a double best addresses together with fantastic sq . website link attachments, a high squat closure, plus some features on the side.

# Seo Services said on Saturday, June 16, 2012 3:04 PM

vn8jzm I value the article.Thanks Again. Much obliged.

# Still said on Tuesday, July 3, 2012 4:38 PM

Wow! This blog looks just like my old one! It's on a entirely different topic but it has pretty much the same layout and design. Wonderful choice of colors!

# Cheap Seo Services said on Monday, July 9, 2012 10:27 AM

ZYyyIP Major thanks for the blog post.Thanks Again. Much obliged.

# Work from home said on Wednesday, July 11, 2012 10:17 PM

Fantastic article post.Much thanks again. Want more.

# Terry said on Tuesday, July 24, 2012 10:35 AM

Thanks for sharing such a nice opinion, post is nice, thats why i have read it entirely

# oem software said on Wednesday, August 15, 2012 12:43 AM

ZqL0PW Really appreciate you sharing this post.Thanks Again. Much obliged.

# security doors london said on Wednesday, August 15, 2012 3:33 PM

Great article as are all the rest found on this site. I know a couple of friends of mine who'll love this place so, I'll be sure to pass this site along to them. Thanks

# Reichert said on Saturday, August 18, 2012 1:28 AM

Wow, that's what I was looking for, what a stuff! present here at this webpage, thanks admin of this web site.

# Mcallister said on Saturday, November 24, 2012 4:17 AM

What's up it's me, I am also visiting this website regularly,

this website is in fact fastidious and the viewers are in fact sharing pleasant thoughts.

# Seo Company said on Sunday, November 25, 2012 5:11 AM

W8feLM Hey, thanks for the blog article.Thanks Again. Will read on...

# Lister said on Sunday, December 2, 2012 4:05 AM

We are a group of volunteers and opening a new scheme in our community.

Your website offered us with valuable information to

work on. You have done a formidable job and

our whole community will be thankful to you.

# Priscimi said on Saturday, December 15, 2012 3:53 AM

click <a href="http://e--store.com/ ">outlet louis vuitton</a>  , for special offer   RxdeWscu  <a href="http://e--store.com/ "> http://e--store.com/ </a>

# Seymour said on Sunday, December 16, 2012 12:58 AM

This blog was... how do you say it? Relevant!! Finally I have

found something which helped me. Appreciate it!

# Feenepes said on Sunday, December 16, 2012 6:40 AM

get <a href="http://e--store.com/ ">coach outlets</a>   and get big save   HNMtJHWv  <a href="http://e--store.com/ "> http://e--store.com/ </a>

# Thundfut said on Sunday, December 16, 2012 7:09 AM

you definitely love <a href="http://e--store.com/ ">prada outlet online</a>  with low price   CMhBmDXr  <a href="http://e--store.com/ "> http://e--store.com/ </a>

# White said on Monday, December 17, 2012 6:09 AM

You're so awesome! I don't believe I have read something like this before.

So nice to discover someone with genuine thoughts on this subject.

Seriously.. thanks for starting this up. This site is one thing that's needed on the web, someone with a little originality!

# Thundfut said on Monday, December 17, 2012 12:33 PM

click to view <a href="http://e--store.com/ ">lv online</a>  , just clicks away   hBpuESGt  <a href="http://e--store.com/ "> http://e--store.com/ </a>

# erurtutt said on Monday, December 17, 2012 1:39 PM

must check <a href="http://e--store.com/ ">coach purses outlet</a>  at my estore   tUAPpRHS  <a href="http://e--store.com/ "> http://e--store.com/ </a>

# GyncTund said on Wednesday, December 19, 2012 3:39 AM

must look at this <a href="http://e--store.com/ ">louis vuitton outlet online</a>  with confident   PbtZZKJX  <a href="http://e--store.com/ "> http://e--store.com/ </a>

# detViara said on Thursday, December 20, 2012 7:14 PM

check this link, <a href="http://e--store.com/ ">coach outlet online</a>  suprisely   kJbCaGZK  <a href="http://e--store.com/ "> http://e--store.com/ </a>

# Thundfut said on Monday, December 24, 2012 5:46 AM

get cheap <a href="http://e--store.com/ ">louis vuitton outlet online</a>  , for special offer   LECtVkKJ  <a href="http://e--store.com/ "> http://e--store.com/ </a>

# Alvarado said on Monday, December 24, 2012 5:36 PM

I visited various websites except the audio quality

for audio songs present at this site is genuinely excellent.

# pills for weight loss said on Friday, February 1, 2013 10:02 AM

NVDbaE Im grateful for the article post.Really looking forward to read more. Much obliged.

# Ferrell said on Wednesday, February 13, 2013 11:38 PM

I have been surfing online more than 3 hours today, yet I never found any interesting

article like yours. It is pretty worth enough for me.

Personally, if all site owners and bloggers made good content as you

did, the net will be much more useful than ever

before.