Asp.Net验证相关

一、
session, cookies可以作为验证用户信息用的,那么同.net自带的一些验证方式( windows验证, Form验证, Passport验证及none)是什么关系?

1、
Session 允许通过将对象存储在 Web 服务器的内存中在整个用户会话过程中保持任何对象,可以是多个页面,只要是在一次会话过程中。
viewstate获取状态信息的字典,这些信息使您可以在同一页的多个请求间保存和还原服务器控件的视图状态。
cookie类由客户端应用程序用来检索有关通过 HTTP 响应接收的 Cookie 的信息,如果用户禁用cookie就不能使用,而且存放的大小有限。

Windows 身份验证提供程序
提供有关如何将 Windows 身份验证与 Microsoft Internet 信息服务 (IIS) 身份验证结合使用来确保 ASP.NET 应用程序安全的信息。

Forms 身份验证提供程序 
提供有关如何使用您自己的代码创建应用程序特定的登录窗体并执行身份验证的信息。使用 Forms 身份验证的一种简便方法是使用 ASP.NET 成员资格和 ASP.NET 登录控件,它们一起提供了一种只需少量或无需代码就可以收集、验证和管理用户凭据的方法。

Passport 身份验证提供程序 
提供有关由 Microsoft 提供的集中身份验证服务的信息,该服务为成员站点提供单一登录和核心配置

2、
大家都从理论高度来谈这个问题,菜鸟我说说个人意见吧
如果对于 帐户登录 这类验证来说:
session验证相对比cookie验证安全一些,有人想搞破解就麻烦一些.
cookie数据基于客户端,容易伪造或改变.但能减轻服务器压力.
session验证相对耗费服务器资源一些,而且有效时间相对短,根据具体设置一般在15-30分钟左右

asp.net的验证控件有 服务器端验证 与服务器加客户端双验证模式.
asp.net验证控件的好处在于 开发简便,是给那些做外包的人用的,讲究开发速度,不管客户的应用速度.
不足之处在于 生成垃圾数据冗多,功能却不够强大,不够灵活,如果给自己的网站写程序,还不如自己写验证代码.

Windows IIS 根据应用程序的设置执行身份验证 (基本、简要或集成 Windows)。在 IIS 中必须禁用匿名访问。
Forms为用户提供一个输入凭据的自定义窗体(Web 页),然后在应用程序中验证他们的身份。用户凭据标记存储在 Cookie 中。
Passport身份验证是通过 Microsoft 的集中身份验证服务执行的,它为成员站点提供单独登录和核心配置文件服务。

二、
楼上的大家都在说理论的东西
就是在实际运用中
是不是session cookies中的任意一种和windows form passport中的一种搭配使用,还是各自用各自的
我以前做的都是用 session 不用 form之类的,但是可能性能会比较低,是不是一般都以采用 session + form的形式或者 cookies + form 的形式?

这个就根据 应用来定了.
譬如普通的用户登录,如果不过于追求安全度,用cookies + form 就可以了.
如果是后台管理员登录验证,至少得用session + form了.

你说的只用session,那最多是用session ID区分不同的用户.session ID是随机的,关闭页面即消失的.在某些应用下就够了.
但对于帐户登录,如果不用session+Form,那么只能在cookies中保存信息了.

三、
在asp中可能只要用session 或者 cookies 其中之一就可以了,但是这样做是不是对计算机性能消耗比较大,因为每次都要根据session或者cookies的值去同数据库中的PW进行比对,也就降低了效率
用form的意思,是不是意味着在配置了form的目录下的任何文件,只需要去用 session或者form的值去比对登录时产生的那个票据,就可以了?这是我的一点猜想,不知道是不是这样的?

session和cookie可以看成是保存信息的载体。cookies是客户端一种常见的保存方式,而session是服务器端的保存方式。
其他的东西则纯粹是应用的身份验证方式。

Windows集成验证使用了AD相关的技术,一般需要DC参与验证过程,客户端的身份并不直接发送给服务器。相关的身份验证信息是直接嵌入在双方通信的HTTP包中的,所以没有使用cookie或者session来存储。

Forms验证则是基于cookie和session来保存用户身份信息的一种验证方式,鉴于这些信息并不是无法破解,一般建议配合使用HTTPS/SSL,这样B/S的通信都得以加密。

Passport方式现在已经不是IIS自带的方式了,而是独立的Windows Live ID服务,相关的资料可以从下面找到,
http://msdn.microsoft.com/en-us/library/bb404787.aspx

四、
楼上说的,应该和我猜想的差不多吧。。。
传统的asp里面是不是根本没有身份验证的东西?
在.net里面有了身份验证?

ASP为什么不能有身份验证呢?呵呵,那不是太不安全了?
其实一般网站应用的身份验证分成三类吧,
首先是服务器内置的身份验证,像IIS就支持好几种。
其次是第三方通用的验证方式,例如Windows Live ID,OpenID等等。
最后是应用程序自身的验证。
.NET所带的Forms方式其实属于第三类,只是Forms方式是微软在框架中已经实现的一个内建方式,你可以采用与扩展。ASP并没有这种内建的方式,并不表示你不可以在ASP应用中构建自己的验证方式。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值