直接输入文件ip判断用户是否登录

julychen1225 2014-01-24 10:41:49
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 以上是我花了好几天时间综合网上好多资料总结的 希望提供给需要的人参考
...全文
179 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
julychen1225 2014-02-17
  • 打赏
  • 举报
回复
我现在遇到问题是 直接输文件IP会验证是否登录 没登录的跳转到登录页面 但是主页上的图片却显示不了 只有输入用户名、密码后才能正常显示
julychen1225 2014-02-17
  • 打赏
  • 举报
回复
引用 3 楼 starfd 的回复:
[quote=引用 2 楼 julychen1225 的回复:] [quote=引用 1 楼 starfd 的回复:] 高端大气上档次啊。。。。那我要是把IP改成其他人的不就能用他的权限了???
这些都是在服务器上设置的 还有我们的系统是内部用户只要能登录就能访问[/quote] 那为啥不改成通过域账号登陆呢????只要当前登录用户是属于该域的,就可以直接登陆[/quote] 如果不在局域网用不就没法验证了吗?有些是要挂到外网上
  • 打赏
  • 举报
回复
引用 2 楼 julychen1225 的回复:
[quote=引用 1 楼 starfd 的回复:] 高端大气上档次啊。。。。那我要是把IP改成其他人的不就能用他的权限了???
这些都是在服务器上设置的 还有我们的系统是内部用户只要能登录就能访问[/quote] 那为啥不改成通过域账号登陆呢????只要当前登录用户是属于该域的,就可以直接登陆
julychen1225 2014-01-24
  • 打赏
  • 举报
回复
引用 1 楼 starfd 的回复:
高端大气上档次啊。。。。那我要是把IP改成其他人的不就能用他的权限了???
这些都是在服务器上设置的 还有我们的系统是内部用户只要能登录就能访问
  • 打赏
  • 举报
回复
高端大气上档次啊。。。。那我要是把IP改成其他人的不就能用他的权限了???

62,244

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧