asp.net Forms 身份验证 html页面

原创 2015年11月19日 19:07:48

IIS 中默认是不支持静态页面进行Forms验证,在网上找个了好多答案,配置都太过繁琐

想让IIS的Forms验证 支持HTML静态页面其实只需要在web.config下进行简单的配置就可以了


1、在  system.web节点 配置  Forms验证

 <system.web>  
    <authentication mode="Forms">
      <forms loginUrl="Web/login.html" timeout="100" protection="All" />
    </authentication>
  </system.web>  


2、在  configuration 节点下 增加 location节点 声明需要验证的文件
 <location path="Web/Views">
    <system.web>
      <authorization>
        <deny users="?"/>
      </authorization>
    </system.web>
  </location>
此时未登录的状态下 访问Views文件下的aspx,cshtml等.net的资源文件就会重定向至Web/login.html 页面,但是访问html、xml等文件还是不需要验证。

3、在system.webServer节点增加 handlers  节点配置

 <system.webServer>
    <handlers>
      <add name="htmlPageHandlerFactory" path="*.html" verb="*" type="System.Web.UI.PageHandlerFactory" resourceType="Unspecified" preCondition="integratedMode" />
    </handlers>
  </system.webServer>
name: 随便定义,但是必须唯一

path :*表示匹配所有文件,*.html 只匹配html文件

verb 请求谓词 get、post 。 *号表示支持所有谓词


此时再次访问站点的 html文件就会出现如下图的错误



提示已经很明显,只需要在compilation节点下注册一个.html的扩展

<system.web>  
    <authentication mode="Forms">
      <forms loginUrl="Web/login.html" timeout="100" protection="All" />
    </authentication>
    <compilation debug="true" targetFramework="4.5" defaultLanguage="C#">
      <buildProviders>
        <add extension=".html" type="System.Web.Compilation.PageBuildProvider"/>
      </buildProviders>
    </compilation>
  </system.web>


当然 最重要的一步不能忘记,登录成功之后设置凭证

        [HttpGet]
        public ActionResult Login()
        {

            System.Web.Security.FormsAuthentication.SetAuthCookie(Guid.NewGuid().ToString(), true);

            return Json(new { result = true, msg = "登录成功" }, JsonRequestBehavior.AllowGet);

        }




相关文章推荐

asp.net实战Forms身份验证/角色案例

  • 2009年09月14日 15:17
  • 143KB
  • 下载

Asp.net Forms身份验证

前言:     因为自己一直从事企业内部系统开发,一直将登陆用户信息保存在Session中.没有用过什么Forms身份验证,最近研究了一下这方面的东西,贴一下,欢迎大家拍砖. Froms身份验证:...

asp.net登录 用Forms身份验证和基于角色的分目录访问

Forms身份验证用来判断是否合法用户,当用户合法后,再通过用户的角色决定能访问的页面。主要思想:Forms身份验证用来判断是否合法用户,当用户合法后,再通过用户的角色决定能访问的页面。 具体步骤: ...

asp.net Forms身份验证详解

在做网站的时候,都会用到用户登录的功能。对于一些敏感的资源,我们只希望被授权的用户才能够访问,这让然需要用户的身份验证。对于初学者,通常将用户登录信息存放在Session中,笔者在刚接触到asp.ne...

[.NET 基于角色安全性验证] 之三:ASP.NET Forms 身份验证

[ 2006-08-08 11:11:56 | 作者: yuhen ] 字号: 大 | 中 | 小 在开发过程中,我们需要做的事情包括: 1. 在 web.config 中设...

光脚丫学ASP.NET MVC(0004):在ASP.NET MVC中使用Forms身份验证

光脚丫思考  QQ:524130780邮箱:524130780@QQ.COM博客:http://blog.csdn.net/GJYSK视频演示01:http://u.115.com/file/bh0b...
  • gjysk
  • gjysk
  • 2011年07月11日 15:23
  • 1597

Asp.net 登陆页面的Ajax异步身份验证的实现

先把js脚本写出来: function ValidForm() { if (!$('#commentForm').valid()) ...

ASP.NET基于Forms身份权限验证

1、创建一个网站,结构如下: 网站根目录 Admin目录 ----> 管理员目录 Manager.aspx ----> 管理员可以访问的页面 Users目录 ----> 注册用户目录 W...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:asp.net Forms 身份验证 html页面
举报原因:
原因补充:

(最多只允许输入30个字)