%windir%\system32\inetsrv\config\schema
احتمال زیاد دسترسی برای ویرایش این دایرکتوری به خاطر مراتب امنیتی با مشکل برخواهید خورد برای ویرایش این نکته امنیتی از اینجا یا به خصوص از اینجا کمک بگیرید.<configSchema> <sectionSchema name="system.webServer/imageCopyright"> <attribute name="enabled" type="bool" defaultValue="false" /> <attribute name="message" type="string" defaultValue="Your Copyright Message" /> <attribute name="color" type="string" defaultValue="Red"/> </sectionSchema> </configSchema>
- enabled: آیا این هندلر فعال باشد یا خیر.
- message: پیامی که باید به عنوان تگ درج شود.
- color: رنگ متن که به طور پیش فرض قرمز رنگ است.
به هر کدام از تگهای بالا یک مقدار پیش فرض داده ایم تا اگر مقداردهی نشدند، ماژول طبق مقادیر پیش فرض کار خود را انجام هد.
<configSections> ... <sectionGroup name="system.webServer"> <section name="imageCopyright" overrideModeDefault="Allow"/> ... </sectionGroup> </configSections>
<section name="windowsAuthentication" overrideModeDefault="Allow" />
<location path="AdministratorSite" overrideMode="Allow"> <security> <authentication> <providers> <windowsAuthentication enabled="false"> </providers> <add value="Negotiate" /> <add value="NTLM" /> </location> </windowsAuthentication> </authentication> </security>
<system.webServer> <imageCopyright /> </system.webServer>
<system.webServer> <imageCopyright enabled="true" message="an example of www.dotnettips.info" color="Blue" /> </system.webServer>
%windir%\system32\inetsrv\appcmd set config -section:system.webServer/imageCopyright /color:yellow /message:"Dotnettips.info" /enabled:true
%windir%\system32\inetsrv\appcmd list config -section:system.webServer/imageCopyright
c:\inetpub\mypictures
%windir%\system32\inetsrv\appcmd add app -site.name:"Default Web Site" -path:/mypictures -physicalPath:%systemdrive%\inetpub\mypictures
%windir%\system32\inetsrv\appcmd set config "Default Web Site/mypictures" -section:directoryBrowse -enabled:true
c:\inetpub\mypictures\App_Code\imagecopyrighthandler.cs
#region Using directives using System; using System.Web; using System.Drawing; using System.Drawing.Imaging; using Microsoft.Web.Administration; #endregion namespace IIS7Demos { public class imageCopyrightHandler : IHttpHandler { public void ProcessRequest(HttpContext context) { ConfigurationSection imageCopyrightHandlerSection = WebConfigurationManager.GetSection("system.webServer/imageCopyright"); HandleImage( context, (bool)imageCopyrightHandlerSection.Attributes["enabled"].Value, (string)imageCopyrightHandlerSection.Attributes["message"].Value, (string)imageCopyrightHandlerSection.Attributes["color"].Value ); } void HandleImage( HttpContext context, bool enabled, string copyrightText, string color ) { try { string strPath = context.Request.PhysicalPath; if (enabled) { Bitmap bitmap = new Bitmap(strPath); // add copyright message Graphics g = Graphics.FromImage(bitmap); Font f = new Font("Arial", 50, GraphicsUnit.Pixel); SolidBrush sb = new SolidBrush(Color.FromName(color)); g.DrawString( copyrightText, f, sb, 5, bitmap.Height - f.Height - 5 ); f.Dispose(); g.Dispose(); // slow, but good looking resize for large images context.Response.ContentType = "image/jpeg"; bitmap.Save( context.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg ); bitmap.Dispose(); } else { context.Response.WriteFile(strPath); } } catch (Exception e) { context.Response.Write(e.Message); } } public bool IsReusable { get { return true; } } } }
<system.web> <compilation> <assemblies> <add assembly="Microsoft.Web.Administration, Version=7.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"/> </assemblies> </compilation> </system.web>
appcmd set config "Default Web Site/mypictures/" -section:handlers /+[name='JPGimageCopyrightHandler',path='*.jpg',verb='GET',type='IIS7Demos.imageCopyrightHandler']
appcmd recycle AppPool DefaultAppPool