Web.config中的配置
<system.web>
<authentication mode="Forms">
<forms name="KMAUTH"
    loginUrl="~/Login"
    defaultUrl="~/Login"
    protection="All"
    timeout="40"
    path="/"
    requireSSL="[true|false]"
    slidingExpiration="[true|false]"
    enableCrossAppRedirects=[true|false]"
    cookieless="[UseUri|UseCookie|AutoDetect|UseDeviceProfile]"
    domain="domain name"
    ticketCompatibilityMode="[Framework20|Framework40]"
/>
</authentication>
</system.web>

说明

name:指定要用于身份验证的 HTTP Cookie。如果正在一台服务器上运行多个应用程序并且每个应用程序都需要唯一的 Cookie,则必须在每个应用程序的 Web.config 文件中配置 Cookie 名称。默认值为 ".ASPXAUTH"。
loginUrl:指定如果找不到任何有效的身份验证 Cookie,将请求重定向到的用于登录的 URL。默认值为 login.aspx。
defaultUrl:定义在身份验证之后用于重定向的默认 URL。默认值为 "default.aspx"。
protection:指定 Cookie 使用的加密类型(如果有)。默认值为 All。
timeout:指定 Cookie 过期前逝去的时间(以整数分钟为单位)。如果 SlidingExpiration 属性为 true,则 timeout 属性是滑动值,会在接收到上一个请求之后的指定时间(以分钟为单位)后过期。 为防止危及性能并避免向开启 Cookie 警告的用户发出多个浏览器警告,当指定的时间逝去大半时将更新 Cookie。这可能导致精确性受损。默认值为 "30"(30 分钟)。
path:为应用程序发出的 Cookie 指定路径。默认值是斜杠 ( /),这是因为大多数浏览器是区分大小写的,如果路径大小写不匹配,浏览器不会送回 Cookie。
requireSSL:指定是否需要 SSL 连接来传输身份验证 Cookie。默认值为 False。
slidingExpiration:指定是否启用可调过期时间。可调过期将 Cookie 的当前身份验证时间重置为在单个会话期间收到每个请求时过期。默认值为 True。
enableCrossAppRedirects:表明是否将通过身份验证的用户重定向到其他 Web 应用程序中的 URL。默认值为 False。
cookieless:定义是否使用 Cookie 以及 Cookie 的行为。默认值为 UseDeviceProfile.
domain:指定在传出 Forms 身份验证 Cookie 中设置的可选域。此设置的优先级高于 httpCookies 元素中使用的域。默认值为空字符串 ("")。
ticketCompatibilityMode:指定在 Forms 身份验证中对于票证到期日期使用协调世界时 (UTC) 还是本地时间。默认值为 Framework20。

使用

/// <summary>
/// 获取当前用户是否已经登录。
/// </summary>
public static bool IsAuthenticated
{
get
{
return HttpContext.Current.Request.IsAuthenticated;
}
}

//已登录,跳转到首页

if (FormsAuth.IsAuthenticated)
  return RedirectToAction("Index", "Home");

//没有登录,跳转到登录页面
return KM();

另:

FormsAuthenticationTicket.UserData长度问题:

一般来说是没有长度限制的。

当 UserData 过长时,经 FormsAuthentication.Encrypt 加密后,变得更长,如果我们的信息是存储在 Cookie 中,当这个加密后的数据超过 4096 时就会保存不起 Cookie(不会报错),自然也就无法记录用户登录状态。

顺便说一下,如果没有指定 UserData,则加密后的内容总是 256 字节。

 

转载于:https://www.cnblogs.com/zyfIda/p/6116461.html

asp.net Forms身份验证相关推荐

  1. 实现基于 ASP.NET Forms 身份验证的跨子域单点登录

    对于跨应用程序的 ASP.NET Forms 身份验证,相信大家应该都不陌生,几年前很多文章都介绍了如何实现,比如 MSDN 的 跨应用程序进行 Forms 身份验证,唐朝程序员 的 ASP.NET站 ...

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

    在开发过程中,我们需要做的事情包括: 1. 在 web.config 中设置 Forms 身份验证相关参数. 2. 创建登录页. 登录页中的操作包括: 1. 验证用户名和密码是否正确. 2. 创建身份 ...

  3. .NET Forms身份验证

    .NET表单身份验证 ASP.NET Forms 身份验证的简单实现:1)在Web.config文件中配置应用程序使用 Forms 身份验证:2)创建登陆页面,将用户身份验证票证添加到Cookie集合 ...

  4. ASP.NET Forms权限验证

    安全性是 ASP.NET Web 应用程序中一个非常重要的方面.它涉及内容非常广泛,不能在一篇文章内说明所有的安全规范,本文讲述如何利用Forms 身份验证构建安全的 ASP.NET 应用程序,它是目 ...

  5. Asp.Net MVC 身份验证-Forms

    Asp.Net MVC 身份验证-Forms 在MVC中对于需要登录才可以访问的页面,只需要在对应的Controller或Action上添加特性[Authorize]就可以限制非登录用户访问该页面.那 ...

  6. ASP.net的身份验证方式有哪些?分别是什么原理?

    Asp.net的身份验证有有三种,分别是"Windows | Forms | Passport",其中又以Forms验证用的最多,也最灵活. Forms 验证方式对基于用户的验证授 ...

  7. .net Forms身份验证不能用在应用的分布式部署中吗?

    参照网上的一些方法,使用Forms身份验证对应用进行分布式部署,发现没有成功. 应用部署的两台内网服务器:192.168.1.19,192.168.1.87,使用Nginx做负载分配,配置完全相同:每 ...

  8. Forms身份验证基本原理

    要采用Forms身份验证,先要在应用程序根目录中的Web.config中做相应的设置: <authentication mode="forms">     <fo ...

  9. 细说ASP.NET Forms身份认证

    细说ASP.NET Forms身份认证 阅读目录 开始 ASP.NET身份认证基础 ASP.NET身份认证过程 如何实现登录与注销 保护受限制的页面 登录页不能正常显示的问题 认识Forms身份认证 ...

最新文章

  1. vue 父页面中的方法 调用_解决Vue中页面成功渲染数据undefined的问题
  2. 2021年春季学期-信号与系统-第六次作业参考答案-第四小题
  3. maven deploy plugin_学习Maven之Maven Surefire Plugin
  4. STM32——流水灯
  5. 监督学习 | SVM 之支持向量机Sklearn实现
  6. 因特网几个“特殊”IP地址的专门用途
  7. asp.net 2.0中允许一次上传多个文件的设计
  8. 第一章练习题三级菜单
  9. 给软件工程师的学习参考
  10. 99乘法表 (输入一个数,以该数为行数输出乘法表)
  11. 揭秘世界首位机器人公民:按照赫本形象设计、曾扬言毁灭人类
  12. VB如何判断文件正被占用/已被打开
  13. ps新手秒变大师必备的Ps插件全在这!(mac版本)
  14. Java面经背诵版(一)
  15. 汽车电子零部件可靠性测试
  16. 虚拟服务器 要备案吗,更换虚拟主机之后需要重新备案吗?
  17. zscore标准化步骤_几种常用数据标准化方法
  18. 神奇的分形艺术: Mandelbrot集和Julia集
  19. loj507(dp)
  20. 我的世界神秘时代研究笔记计算机,我的世界神秘时代5教程全研究笔记连线一览...

热门文章

  1. STM32F4 DAC
  2. Mysql null值
  3. 【20190427】【Python】MOOC学习中的小代码总结(已完结)
  4. iText 新年新版:截图识别文字后,翻译为 100+ 种语言
  5. 竞价助手3.3rc1发布
  6. 计算机软著评职称,软著可以评职称吗
  7. 【方案】校园直播活动有哪些需求?如何选择专业性直播平台?
  8. remote: error: cannot lock ref ‘refs/heads/dev/mz/dev‘: ‘refs/heads/dev‘ exists; cannot create ‘refs
  9. 51nod3061 车
  10. Java制作二级导航菜单_纯CSS实现超简单的二级下拉导航菜单代码