1、新建类:ImgHandler
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
/// <summary>
///ImgHandler 的摘要说明
/// </summary>
public class ImgHandler : IHttpHandler, System.Web.SessionState.IRequiresSessionState
{
public void ProcessRequest(HttpContext context)
{
//context.Session["uerid"].ToString(); //继承了IRequiresSessionState接口,正常。
if (!context.User.Identity.IsAuthenticated)
{
context.Response.Write("请先登陆再访问。<a href='Default.aspx'>首页</a>");
}
else
{
string path = context.Request.PhysicalPath;
//context.Response.ContentType = "image/*";
context.Response.WriteFile(path);
}
}
public bool IsReusable
{
get { return true; }
}
}
2、web.config配置:
<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
<handlers>
<add name="ASBXHandler" verb="GET,HEAD,POST" path="*.asbx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<remove name="ChartImageHandler"/>
<add name="ChartImageHandler" preCondition="integratedMode" verb="GET,HEAD,POST" path="ChartImg.axd" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add name="jpg" path="*.jpg" verb="*" scriptProcessor="ImgHandler" resourceType="Unspecified" preCondition="integratedMode" type="ImgHandler"/>
<add name="gif" path="*.gif" verb="*" scriptProcessor="ImgHandler" resourceType="Unspecified" preCondition="integratedMode" type="ImgHandler"/>
<add name="bmp" path="*.bmp" verb="*" scriptProcessor="ImgHandler" resourceType="Unspecified" preCondition="integratedMode" type="ImgHandler"/>
<add name="png" path="*.png" verb="*" scriptProcessor="ImgHandler" resourceType="Unspecified" preCondition="integratedMode" type="ImgHandler"/>
<add name="pdf" path="*.pdf" verb="*" scriptProcessor="ImgHandler" resourceType="Unspecified" preCondition="integratedMode" type="ImgHandler"/>
</handlers>
</system.webServer>
注:该配置为iis7.0集成模式,7.0经典模式是在<system.web>配置
若网站下的文件配置的是虚拟目录,而且连的是另一台共享服务器,则需要继续进行以下几点配置
3、网站服务器:管理工具-》本地安全策略-》安全设置-》本地策略-》安全选项-》网络安全:LAN管理器身份验证级别 未定义改为发送LM和NTLM.

4、 IIS配置:
网站根目录主页-》身份验证-》启用asp.net模拟-》设置特定用户(该用户所属组为IIS_IUSRS,对连虚拟目录的文件夹有完全控制的权限,并且虚拟目录连的共享服务器也应配有相同用户、密码、权限的用户)

5、检查共享服务器的账户来宾状态是否启用,若为启用,操作:管理工具-》本地安全策略-》安全设置-》本地策略-》安全选项-》账户:来宾账户状态
我本机运行环境是win7,vs2010 以上是我花了好几天时间综合网上好多资料总结的 希望提供给需要的人参考