<?xml version="1.0" encoding="utf-8"?>
<configuration>
	<configSections>
		<section name="BlogConfigurationSettings" type="Subtext.Framework.Util.XmlSerializerSectionHandler, Subtext.Framework" requirePermission="false" />
		<section name="HandlerConfiguration" type="Subtext.Framework.Util.XmlSerializerSectionHandler, Subtext.Framework" requirePermission="false" />
		<section name="SyndicationCompression" type="Subtext.Framework.Syndication.Compression.SyndicationCompressionSectionHandler, Subtext.Framework" requirePermission="false" />
		<section name="ObjectProvider" type="Subtext.Extensibility.Providers.ProviderSectionHandler, Subtext.Extensibility" requirePermission="false" />
		<section name="Database" type="Subtext.Extensibility.Providers.ProviderSectionHandler, Subtext.Extensibility" requirePermission="false" />
		<section name="Search" type="Subtext.Extensibility.Providers.ProviderSectionHandler, Subtext.Extensibility" requirePermission="false" />
		<section name="Email" type="Subtext.Extensibility.Providers.ProviderSectionHandler, Subtext.Extensibility" requirePermission="false" />
		<section name="Installation" type="Subtext.Extensibility.Providers.ProviderSectionHandler, Subtext.Extensibility" requirePermission="false" />
		<section name="Import" type="Subtext.Extensibility.Providers.ProviderSectionHandler, Subtext.Extensibility" requirePermission="false" />
		<section name="BlogEntryEditor" type="Subtext.Extensibility.Providers.ProviderSectionHandler, Subtext.Extensibility" requirePermission="false" />
		<section name="AllowableCommentHtml" type="System.Configuration.NameValueSectionHandler,System,Version=1.0.5000.0,Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
		<section name="FriendlyUrlSettings" type="System.Configuration.NameValueSectionHandler,System,Version=1.0.5000.0,Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
		<section name="BlogMLProvider" type="Subtext.Extensibility.Providers.ProviderSectionHandler, Subtext.Extensibility" requirePermission="false" />

		<!-- asp.net AJAX 1.0 config -->
		<sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, 
                  Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
			<sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, 
                    Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
				<section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, 
                 Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/>
				<sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, 
                      Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
					<section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, 
                   Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="Everywhere" />
					<section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, 
                   Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication" />
					<section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, 
                   Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication" />
				</sectionGroup>
			</sectionGroup>
		</sectionGroup>

	</configSections>

	<connectionStrings>
		<add name="subtextData" connectionString="Server=localhost;Database=SubtextData;User ID=sa; Password=;" />
	</connectionStrings>

	<!-- separatingCharacter - Auto Generated Friendly URLs
		will replace spaces with this character. Leave blank to simply remove
		spaces entirely.
		Valid values are 
			- (hyphen) . (period ) and _ (underscore)
		
		textTransform - "None", "LowerCase", "UpperCase" (you can leave this one blank).
		limitCharacterLength - when set to a number greater than 0, the Auto
		Generated Friendly URL will stop after specified number of characters.
	-->
	<FriendlyUrlSettings>
		<add key="textTransform" value="LowerCase"/>
		<add key="separatingCharacter" value="-"/>
		<add key="limitWordCount" value="10"/>
	</FriendlyUrlSettings>
	<!--
		This section contains a set of key / value pairs to indicate which HTML tags
		are allowed in comments. The key contains the tag (such as 'strong' or 'a')
		and the value is a comma delimited set of attributes that tag may have.
		If no attributes are allowed, set value=""
	-->
	<AllowableCommentHtml>
		<add key="a" value="href,title"/>
		<add key="b" value=""/>
		<add key="strong" value=""/>
		<add key="blockquote" value="cite"/>
		<add key="i" value=""/>
		<add key="em" value=""/>
		<add key="u" value=""/>
		<add key="strike" value=""/>
		<add key="super" value=""/>
		<add key="sub" value=""/>
		<add key="code" value=""/>
	</AllowableCommentHtml>
	<!-- 
		This section is used to map URLS to the control that 
		renders the contents for a given URL.  The ordering DOES matter.
	-->
	<HandlerConfiguration defaultPageLocation="DTP.aspx" type="Subtext.Framework.UrlManager.HandlerConfiguration, Subtext.Framework">
		<HttpHandlers>
			<HttpHandler pattern="login.aspx" handlerType="Page" pageLocation="Login.aspx"/>
			<HttpHandler pattern="(?:/Sitemap\.ashx)$" type="Subtext.Web.SiteMap.SiteMapHttpHandler, Subtext.Web" handlerType="Direct"/>
			<HttpHandler pattern="(?:/admin\/handlers\/BlogMLExport\.ashx)" type="Subtext.BlogML.BlogMLHttpHandler, Subtext.BlogML" handlerType="Direct"/>
			<HttpHandler pattern="/Admin/" handlerType="Directory" directoryLocation="Admin"/>
			<HttpHandler pattern="/Providers/" handlerType="Directory" directoryLocation="Providers"/>
			<HttpHandler pattern="/rss\.aspx$" type="Subtext.Framework.Syndication.RssHandler, Subtext.Framework" handlerType="Direct"/>
			<HttpHandler pattern="/atom\.aspx$" type="Subtext.Framework.Syndication.AtomHandler, Subtext.Framework" handlerType="Direct"/>
			<HttpHandler pattern="/comments/commentRss/\d+\.aspx$" type="Subtext.Framework.Syndication.RssCommentHandler, Subtext.Framework" handlerType="Direct"/>
			<HttpHandler pattern="/aggbug/\d+\.aspx$" type="Subtext.Framework.Tracking.AggBugHandler, Subtext.Framework" handlerType="Direct"/>
			<HttpHandler pattern="/customcss\.aspx$" type="Subtext.Web.UI.Handlers.BlogSecondaryCssHandler, Subtext.Web" handlerType="Direct"/>
			<HttpHandler pattern="(?:/category\/[-\w\s\d]+\.aspx/rss/?)$" type="Subtext.Framework.Syndication.RssCategoryHandler, Subtext.Framework" handlerType="Direct"/>
			<HttpHandler pattern="(?:/ArchivePostPage.aspx)$" controls="ArchivePostPage.ascx"/>
			<HttpHandler pattern="(?:/LinkPage.aspx)$" controls="LinkPage.ascx"/>
			<HttpHandler pattern="(?:/ArticleCategories.aspx)$" controls="ArticleCategories.ascx"/>
			<HttpHandler pattern="(?:/archives\.aspx)$" controls="SingleColumn.ascx"/>
			<HttpHandler pattern="(?:/archive/\d{4}/\d{2}/\d{2}/\d+\.aspx)$" controls="viewpost.ascx,Comments.ascx,PostComment.ascx"/>
			<HttpHandler pattern="(?:/archive/\d{4}/\d{2}/\d{2}/[-_,+\.\w]+\.aspx)$" controls="viewpost.ascx,Comments.ascx,PostComment.ascx"/>
			<HttpHandler pattern="(?:/archive/\d{4}/\d{1,2}/\d{1,2}\.aspx)$" controls="ArchiveDay.ascx"/>
			<HttpHandler pattern="(?:/archive/\d{4}/\d{1,2}\.aspx)$" controls="ArchiveMonth.ascx"/>
			<HttpHandler pattern="(?:/articles/\d+\.aspx)$" controls="viewpost.ascx,Comments.ascx,PostComment.ascx"/>
			<HttpHandler pattern="(?:/articles/[-_,+\.\w]+\.aspx)$" controls="viewpost.ascx,Comments.ascx,PostComment.ascx"/>
			<HttpHandler pattern="(?:/contact\.aspx)$" controls="Contact.ascx"/>
			<HttpHandler pattern="(?:/posts/|/story/|/archive/)" type="Subtext.Web.UI.Handlers.RedirectHandler, Subtext.Web" handlerType="Direct"/>
			<HttpHandler pattern="(?:/gallery\/\d+\.aspx)$" controls="GalleryThumbNailViewer.ascx"/>
			<HttpHandler pattern="(?:/gallery\/image\/\d+\.aspx)$" controls="ViewPicture.ascx"/>
			<HttpHandler pattern="(?:/(?:category|stories)/[-\w\s]+\.aspx)$" controls="CategoryEntryList.ascx"/>
			<HttpHandler pattern="(?:/tags/.+?/default\.aspx)$" controls="TagEntryList.ascx"/>
			<HttpHandler pattern="(?:/tags/default\.aspx)$" controls="FullTagCloud.ascx" />
			<HttpHandler pattern="(?:/comments\/\d+\.aspx)$" type="Subtext.Framework.Syndication.CommentHandler, Subtext.Framework" handlerType="Direct"/>
			<HttpHandler pattern="(?:/services\/trackbacks/\d+\.aspx)$" type="Subtext.Framework.Tracking.TrackBackHandler, Subtext.Framework" handlerType="Direct"/>
			<HttpHandler pattern="(?:/services\/pingback\.aspx)$" type="Subtext.Framework.Tracking.PingBackService, Subtext.Framework" handlerType="Direct"/>
			<HttpHandler pattern="(?:/services\/metablogapi\.aspx)$" type="Subtext.Framework.XmlRpc.MetaWeblog, Subtext.Framework" handlerType="Direct"/>

			<!-- this needs to be last -->
			<HttpHandler pattern="(?:^/(\w*/(default\.aspx)?|(default\.aspx))$)" controls="homepage.ascx"/>
		</HttpHandlers>
	</HandlerConfiguration>

	<!-- 
		This is a REQUIRED provider that essentially configures an Object Data Source 
		for Subtext.  Access to the Object Data Sources are typically wrapped via classes 
		such as Entries.
		
		If DataObjectProvider is specified, then a Database provider must also be configured.
	-->
	<ObjectProvider defaultProvider="DatabaseObjectProvider">
		<providers>
			<add name="DatabaseObjectProvider" type="Subtext.Framework.Data.DatabaseObjectProvider, Subtext.Framework"/>
		</providers>
	</ObjectProvider>

	<!--
		This provider is only necessary if DataObjectProvider is specified as the object 
		data source.  This provider abstracts the underlying database, whether it be 
		SQL, Access, MySQl, Oracle, or whatever.
	-->
	<Database defaultProvider="SqlDataProvider">
		<providers>
			<add name="SqlDataProvider" type="Subtext.Framework.Data.SqlDataProvider, Subtext.Framework" connectionStringName="subtextData" />
		</providers>
	</Database>

	<Search defaultProvider="EntrySearchProvider">
		<providers>
			<add name="EntrySearchProvider" type="Subtext.Framework.Providers.EntrySearchProvider, Subtext.Framework" connectionStringName="subtextData" />
		</providers>
	</Search>

	<Email defaultProvider="SystemMailProvider">
		<providers>
			<!-- 
				If your SMTP server requires authentication, you may add.
				
				username="user"
				password="pw"
				
				attributes to these providers.
				-->
			<add name="DotNetOpenMailProvider" type="Subtext.Framework.Email.DotNetOpenMailProvider, Subtext.Framework"
				smtpServer="localhost"
				username=""
				password=""
				adminEmail="admin@ThisRepresentsYourBlog.com"/>

			<add name="SystemMailProvider" type="Subtext.Framework.Email.SystemMailProvider, Subtext.Framework"
				smtpServer=""
				username=""
				password=""
				adminEmail="admin@ThisRepresentsYourBlog.com"/>

		</providers>
	</Email>

	<BlogMLProvider defaultProvider="SubtextBlogMLProvider">
		<providers>
			<add name="SubtextBlogMLProvider" type="Subtext.ImportExport.SubtextBlogMLProvider, Subtext.Framework" connectionStringName="subtextData" />
		</providers>

	</BlogMLProvider>

	<Installation defaultProvider="SqlInstallationProvider">
		<providers>
			<add name="SqlInstallationProvider" type="Subtext.Installation.SqlInstallationProvider, Subtext.Installation" connectionStringName="subtextData" />
		</providers>
	</Installation>

	<Import defaultProvider="DotText095ImportProvider">
		<providers>
			<add name="DotText095ImportProvider" type="Subtext.Installation.Import.DotText095ImportProvider, Subtext.Installation" description=".TEXT 0.95 Import Provider"/>
		</providers>
	</Import>

	<!--
		Configuration from BlogEntryEditor provider
		Remember the trailing / at the end of all path
		This section works like any other provider section, so, to enable one provider,
		just write its name in the defaultProvider attribute
	-->
	<BlogEntryEditor defaultProvider="FCKeditorBlogEntryEditorProvider">
		<providers>
			<add name="FtbBlogEntryEditorProvider"
					type="Subtext.Web.Providers.BlogEntryEditor.FTB.FtbBlogEntryEditorProvider, Subtext.Web"
					description="FreeTextBox BlogEntryEditor Provider"
					toolbarlayout="Bold,Italic,Underline,Strikethrough;Superscript,Subscript,RemoveFormat|FontFacesMenu,FontSizesMenu,FontForeColorsMenu|InsertTable|JustifyLeft,JustifyRight,JustifyCenter,JustifyFull;BulletedList,NumberedList,Indent,Outdent;CreateLink,Unlink,Insert,InsertRule|Cut,Copy,Paste;Undo,Redo|ieSpellCheck,WordClean|InsertImage,InsertImageFromGallery"
					FormatHtmlTagsToXhtml="true"
					RemoveServerNamefromUrls="false"
					WebFormFolder="~/Providers/BlogEntryEditor/FTB/"
					Width="700px"
					Height="400px"
				/>
			<!--
				The following provider allow FCKeditor to be used as rich text editor inside SubText
				Configuration parameters are:
				WebFormFolder: the path where the provider files are located (default should be ~/Providers/RichTextEditor/FCKeditor/)
				ToolbarSet: the set of toolbar buttons to use, the possibilities are Default,Basic,SubText, but the best is SubText
				Skin: the style of the toolbar buttons [default|office2003|silver]
				******** connector related settings ********
				ImageBrowserURL: the path where the ImageBrowser is located (don't change unless you know what you are doing)
				LinkBrowserURL: the path where the LinkBrowser is located (don't change unless you know what you are doing)
				ImageConnectorURL: the path where the connector for the ImageBrowser is located (don't change unless you know what you are doing)
				LinkConnectorURL: the path where the connector for the LinkBrowser is located (don't change unless you know what you are doing)
				FileAllowedExtensions: extensions to be retrieved when the connector lists files (.* means all)
				ImageAllowedExtensions: extensions to be retrieved when the connector lists images (.* means all)
			-->
			<add name="FCKeditorBlogEntryEditorProvider"
							type="Subtext.Providers.BlogEntryEditor.FCKeditor.FckBlogEntryEditorProvider, Subtext.Providers.BlogEntryEditor.FCKeditor"
							description="FCKeditor RichTextEditor Provider"
							WebFormFolder="~/Providers/BlogEntryEditor/FCKeditor/"
							ToolbarSet="SubText"
							Skin="default"
							ImageBrowserURL="~/Providers/BlogEntryEditor/FCKeditor/editor/filemanager/browser/default/browser.html?Type=Image&amp;Connector={0}"
							LinkBrowserURL="~/Providers/BlogEntryEditor/FCKeditor/editor/filemanager/browser/default/browser.html?Connector={0}"
							ImageConnectorURL="~/Providers/BlogEntryEditor/FCKeditor/editor/filemanager/browser/default/connectors/aspx/connector.aspx"
							LinkConnectorURL="~/Providers/BlogEntryEditor/FCKeditor/editor/filemanager/browser/default/connectors/aspx/connector.aspx"
							FileAllowedExtensions=".*"
							ImageAllowedExtensions="jpg|gif|png"
							Width="700px"
							Height="400px"
				/>

			<add name="PlainTextBlogEntryEditorProvider"
							type="Subtext.Web.Providers.BlogEntryEditor.PlainText.PlainTextBlogEntryEditorProvider, Subtext.Web"
							description="Plain text BlogEntryEditor Provider"
							cols="10"
							rows="10"
							cssClass="txt"
				/>
		</providers>
	</BlogEntryEditor>


	<!--
		Supported Types "gzip|deflate"
		Supported Levels "normal|low|high"		
	-->
	<SyndicationCompression type="gzip" level="high"/>

	<BlogConfigurationSettings type="Subtext.Framework.Configuration.BlogConfigurationSettings, Subtext.Framework">
		<Tracking enableAggBugs="true" enableWebStats="true" queueStats="true" queueStatsCount="5" enableTrackBacks="true" enablePingBacks="true" pingWeblogs="true"/>

		<!--	
			Checkout Subtext.Framework.Security for hashing passwords.  
			This should be set when first installing the application 
			and really shouldn't be changed afterwards.	
		-->
		<UseHashedPasswords>true</UseHashedPasswords>

		<!-- Globally control access to web services -->
		<AllowServiceAccess>true</AllowServiceAccess>

		<AllowImages>true</AllowImages>

		<!-- Globally control use of XHTML -->
		<UseXHTML>true</UseXHTML>

		<!-- Default Item Count -->
		<ItemCount>25</ItemCount>

		<!-- Default Number of Posts to Show on Category Pages. Use 0 to show all. -->
		<CategoryListPostCount>0</CategoryListPostCount>

		<!-- Default Server Time Zone Offset -->
		<ServerTimeZone>+8</ServerTimeZone>

		<!-- Whether or not to GZIP the RSS and/or atom feeds. -->
		<UseSyndicationCompression>true</UseSyndicationCompression>

		<!-- 附件上传类型(如果添加新的文件类型请在Static Files节点注册文件类型) -->
		<UploadFileType>jpg|gif|bmp|png|jpeg|mp3|wma|rm|rmvb|ra|asf|avi|wmv|swf|rar|zip</UploadFileType>
		
		<!-- 附件上传大小 -->
		<UploadFileSize>2048</UploadFileSize>
	</BlogConfigurationSettings>

	<appSettings>
		<add key="log4net.Internal.Debug" value="false"/>

		<!-- 
			  Proxy for web requests such as trackbacks and Akismet. 
			  This may be required in Medium Trust hosting environments. 
			  Check with your admin.
		  -->
		<add key="ProxyHost" value="" />
		<add key="ProxyPort" value="" />
		<add key="ProxyUsername" value="" />
		<add key="ProxyPassword" value="" />

		<!-- Aggregate Blog Stuff -->
		<add key="AggregateEnabled" value="false"/>
		<add key="AggregateTitle" value="A Subtext Community"/>
		<add key="AggregateUrl" value="http://localhost/Subtext.Web"/>
		<add key="AggregateDescription" value=".NET by Subtext"/>
		<add key="AggregateHost" value="localhost"/>

		<!--UI Text -->
		<add key="PostCollection" value="日志分类"/>
		<add key="ArticleCollection" value="文章分类"/>
		<add key="ImageCollection" value="图片分类"/>
		<add key="Archives" value="归档"/>

		<!-- 
      Gravatars
      GravatarEnabled: obviously, true to enable gravatars, false to disable
      GravatarUrlFormatString: the remote url for get the image from.
      GravatarEmailFormat: how the mail should be formatted, plain or hashed with MD5

      email2Face.com format string ({0} will be replaced with the plain email):
      http://www.email2face.com/lookup/{0}
      gravatar.com format string ({0} will be replaced with the hashed email, {1} will be replaced with the default gravatar image):
      http://www.gravatar.com/avatar.php?gravatar_id={0}&amp;size=50&amp;default={1}
    -->
		<add key="GravatarEnabled" value="true"/>
		<!-- uncomment to use email2face.com
    <add key="GravatarUrlFormatString" value="http://www.email2face.com/lookup/{0}" />
    -->
		<add key="GravatarUrlFormatString" value="http://www.gravatar.com/avatar.php?gravatar_id={0}&amp;size=50&amp;default={1}"/>
		<add key="GravatarEmailFormat" value="MD5"/>
		<!-- plain|MD5  -->
		<!-- To turn on identicon support, remove "GravatarDefaultImage" and add the following:
    <add key="IdenticonSize" value="40" />
    -->
		<add key="GravatarDefaultImage" value="~/images/default_gravatar.png" />

		<!-- 
	    Another temporary setting. If true, then the Contact Me messages 
	    are routed to the feedback table.  This will be replaced with 
	    something better.
    -->
		<add key="ContactToFeedback" value="false" />
		<!-- 
	    Allows a hoster to turn off this feature system wide, just in case 
	    there is a problem with it. Shouldn't be needed. Anything other 
	    than false == true.
    -->
		<add key="InvisibleCaptchaEnabled" value="true" />

		<!--
	    This is so the Forgot Password knows where to 
	    send the email for the Host Admin.  This will 
	    change soon. It's a temporary solution.HOST-EMAIL
    -->
		<add key="HostEmailAddress" value="HOST-EMAIL"/>

		<!-- 
	    CommunityCredits Integration
	    CommCreditEnabled: obviously, true to enable CommunityCredits, false to disable
	    CommCreditAffiliateCode: AffiliateCode as given by Community Credits Affiliate Program
	    CommCreditAffiliateKey: AffiliateKey specified when signing for the Community Credits Affiliate Program
	    if you are a single blogger you don't have to become a Community Credits Affiliate
	    but if you are setting up a community blog site please register to: http://www.community-credit.com/BecomeAnAffiliate.aspx
    -->
		<add key="CommCreditEnabled" value="false"/>
		<add key="CommCreditAffiliateCode" value="SC145233"/>
		<add key="CommCreditAffiliateKey" value="SBT145$3_"/>

		<add key="FeedBurnerUrl" value="http://feeds.feedburner.com/" />
	</appSettings>

	<system.web>
		<!-- [Full|High|Medium|Low|Minimal] -->
		<trust level="Full" originUrl=".*" />

		<xhtmlConformance mode="Transitional" />

		<!-- Subtext is not yet globalized. This should keep things clean for now -->
		<globalization culture="zh-CN" requestEncoding="utf-8" responseEncoding="utf-8" />

		<!--We do not use session in Subtext. This should not be changed. -->
		<sessionState mode="Off"/>

		<!-- We allow larger uploads in the galleries -->
		<httpRuntime executionTimeout="90" maxRequestLength="819200" useFullyQualifiedRedirectUrl="false"/>

		<!-- We check all comment/public inputs -->
		<pages validateRequest="false" autoEventWireup="true">
			<controls>
				<add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
				<add tagPrefix="ajax" namespace="AjaxControlToolkit" assembly="AjaxControlToolkit"/>
				<add tagPrefix="st" namespace="Subtext.Web.Controls" assembly="Subtext.Web.Controls"/>
				<add tagPrefix="st" namespace="Subtext.Web.Admin.WebUI" assembly="Subtext.Web"/>
			</controls>
		</pages>

		<compilation defaultLanguage="C#" debug="false">
			<assemblies>
				<add assembly="System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
				<add assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
			</assemblies>
		</compilation>

		<!-- RemoteOnly | On | Off -->
		<customErrors mode="RemoteOnly" defaultRedirect="~/SystemMessages/Error.aspx">
			<error statusCode="404" redirect="~/SystemMessages/FileNotFound.aspx"/>
		</customErrors>

		<authentication mode="Forms">
			<forms name=".SubtextCookie"
				loginUrl="login.aspx"
				protection="All"
				requireSSL="false"
				slidingExpiration="true"
				timeout="86400" />
			<!--86400 minutes is approx 60 days-->
		</authentication>

		<httpHandlers>
			<!-- Static Files -->
			<add verb="GET,HEAD" path="*.css" type="System.Web.StaticFileHandler"/>
			<add verb="GET,HEAD" path="*.js" type="System.Web.StaticFileHandler"/>
			<add verb="GET,HEAD" path="*.jpg" type="System.Web.StaticFileHandler"/>
			<add verb="GET,HEAD" path="*.png" type="System.Web.StaticFileHandler"/>
			<add verb="GET,HEAD" path="*.gif" type="System.Web.StaticFileHandler"/>
			<add verb="GET,HEAD" path="*.htm" type="System.Web.StaticFileHandler"/>
			<add verb="GET,HEAD" path="*.html" type="System.Web.StaticFileHandler"/>
			<add verb="GET,HEAD" path="*.xml" type="System.Web.StaticFileHandler"/>
			<add verb="GET,HEAD" path="*.zip" type="System.Web.StaticFileHandler"/>
			<add verb="GET,HEAD" path="*.rar" type="System.Web.StaticFileHandler"/>
			<add verb="GET,HEAD" path="*.wmv" type="System.Web.StaticFileHandler"/>
			<add verb="GET,HEAD" path="*.bmp" type="System.Web.StaticFileHandler"/>
			<add verb="GET,HEAD" path="*.jpeg" type="System.Web.StaticFileHandler"/>
			<add verb="GET,HEAD" path="*.mp3" type="System.Web.StaticFileHandler"/>
			<add verb="GET,HEAD" path="*.wma" type="System.Web.StaticFileHandler"/>
			<add verb="GET,HEAD" path="*.rm" type="System.Web.StaticFileHandler"/>
			<add verb="GET,HEAD" path="*.rmvb" type="System.Web.StaticFileHandler"/>
			<add verb="GET,HEAD" path="*.ra" type="System.Web.StaticFileHandler"/>
			<add verb="GET,HEAD" path="*.asf" type="System.Web.StaticFileHandler"/>
			<add verb="GET,HEAD" path="*.avi" type="System.Web.StaticFileHandler"/>
			<add verb="GET,HEAD" path="*.swf" type="System.Web.StaticFileHandler"/>

			<!-- asp.net AJAX 1.0 config -->
			<remove verb="*" path="*.asmx"/>
			<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
			<add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
			<add verb="GET,HEAD" path="ScriptResource.axd" validate="false" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>

			<add path="WebResource.axd" verb="GET" type="System.Web.Handlers.AssemblyResourceLoader" validate="true" />

			<!-- 
				Since we are grabbing all requests after this, 
				make sure these pages do not rely on the URL Redirection service.
			-->
			<add verb="*" path="*/images/IdenticonHandler.ashx" type="IdenticonHandler, Identicon"/>
			<add verb="*" path="*CaptchaImage.ashx" type="Subtext.Web.Controls.Captcha.CaptchaImageHandler, Subtext.Web.Controls"/>
			<add verb="*" path="OPML.aspx" type="System.Web.UI.PageHandlerFactory"/>
			<add verb="*" path="MainFeed.aspx" type="System.Web.UI.PageHandlerFactory"/>
			<add verb="*" path="Install/*.aspx" type="System.Web.UI.PageHandlerFactory"/>
			<add verb="*" path="Providers/*/*.aspx" type="System.Web.UI.PageHandlerFactory"/>
			<add verb="*" path="SystemMessages/*.aspx" type="System.Web.UI.PageHandlerFactory"/>
			<add verb="*" path="HostAdmin/*.aspx" type="System.Web.UI.PageHandlerFactory"/>
			<add verb="*" path="HostAdmin/*/*.aspx" type="System.Web.UI.PageHandlerFactory"/>
			<add verb="*" path="Logout.aspx" type="System.Web.UI.PageHandlerFactory"/>

			<add verb="GET" path="rsd.xml" type="Subtext.Framework.Web.Handlers.RsdHandler, Subtext.Framework" />
			<add verb="GET" path="rsd.xml.ashx" type="Subtext.Framework.Web.Handlers.RsdHandler, Subtext.Framework" />

			<!-- This will process any ext mapped to aspnet_isapi.dll -->
			<add verb="*" path="*" type="Subtext.Framework.UrlManager.UrlReWriteHandlerFactory, Subtext.Framework"/>
		</httpHandlers>

		<httpModules>
			<add type="Subtext.Web.HttpModules.AuthenticationModule, Subtext.Framework" name="SubtextAuthenticationModule" />
			<add type="Subtext.Web.HttpModules.InstallationCheckModule, Subtext.Framework" name="InstallationCheckModule" />
			<add type="Subtext.Web.HttpModules.BlogRequestModule, Subtext.Framework" name="BlogRequestModule" />
			<!--<add type="AngryPets.Web.Frameworks.ReverseDOS.FilterModule, AngryPets.Web.Frameworks.ReverseDOS" name="reverseDOS" />-->
			<!-- asp.net AJAX 1.0 config -->
			<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
		</httpModules>

		<browserCaps>
			<!--NETSCAPE 6 & 7 -->
			<case match="^Mozilla/5\.0 \([^)]*\) (Gecko/[-\d]+ )?Netscape[6|7]/(?'version'(?'major'\d+)(?'minor'\.\d+)(?'letters'\w*)).*">
				tagwriter=System.Web.UI.HtmlTextWriter
				browser=Netscape
				version=${version}
				majorversion=${major}
				minorversion=${minor}
				frames=true
				tables=true
				cookies=true
				javascript=true
				javaapplets=true
				ecmascriptversion=1.5
				w3cdomversion=1.0
				css1=true
				css2=true
				xml=true

				<filter match="^b" with="${letters}">
					beta=true
				</filter>
			</case>

			<!-- MOZILLA -->
			<case match="^Mozilla/(?'version'(?'major'\d+)(?'minor'\.\d+)(?'letters'\w*)).*">
				css1=true

				<!-- is this negating? confirm -->
				<case match="^[5-9]\." with="${version}">
					css2=true
					tagwriter=System.Web.UI.HtmlTextWriter
				</case>
			</case>
		</browserCaps>
	</system.web>

	<!-- asp.net AJAX 1.0 config -->
	<system.web.extensions>
		<scripting>
			<webServices>
				<!-- Uncomment this line to customize maxJsonLength and add a custom converter -->
				<!--
        <jsonSerialization maxJsonLength="500">
            <converters>
                <add name="ConvertMe" type="Acme.SubAcme.ConvertMeTypeConverter"/>
            </converters>
        </jsonSerialization>
        -->
				<!-- Uncomment this line to enable the authentication service. Include requireSSL="true" if appropriate. -->
				<!--
        <authenticationService enabled="true" requireSSL = "true|false"/>
        -->

				<!-- Uncomment these lines to enable the profile service. To allow profile properties to be retrieved
              and modified in ASP.NET AJAX applications, you need to add each property name to the 
              readAccessProperties and writeAccessProperties attributes. -->
				<!--
          <profileService enabled="true" 
            readAccessProperties="propertyname1,propertyname2"
            writeAccessProperties="propertyname1,propertyname2" />
        -->
			</webServices>
			<!-- 
      <scriptResourceHandler enableCompression="true" enableCaching="true" />
      -->
		</scripting>
	</system.web.extensions>

	<!-- asp.net AJAX 1.0 config - used by Microsoft Internet Information Server (IIS) 7.0 -->
	<system.webServer>
		<validation validateIntegratedModeConfiguration="false" />

		<modules>
			<add name="ScriptModule" preCondition="integratedMode"
				 type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
		</modules>

		<handlers>
			<remove name="WebServiceHandlerFactory-ISAPI-2.0"/>
			<add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode"
				 type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
			<add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode"
				 type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
			<add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd"
				 type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
		</handlers>
	</system.webServer>

	<runtime>
		<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
			<dependentAssembly>
				<assemblyIdentity name="log4net" publicKeyToken="b32731d11ce58905" culture="neutral"/>
				<bindingRedirect oldVersion="1.2.0.30714" newVersion="1.2.10.0"/>
			</dependentAssembly>
		</assemblyBinding>
	</runtime>
</configuration>