关闭

ASP.NET里面的身份验证和授权(一)

3031人阅读 评论(36) 收藏 举报
分类:

        在学习ASP.NET中,接触到了里面的身份验证和授权。我们就来具体总结一下这方面的知识。

        说到身份验证,我们以前的身份验证和授权都是基于Session来做的,都是从数据库中进行查找,比如说登陆的页面,我一登陆的时候输入用户名和密码,在数据库中查找,如果查找发现它是正确的,我们在Session中做一个标记,记录下来它是正确的。以后在访问其他页的时候,如果你有权限限制的话,每一页都判断你的Session对象是否存在,如果存在它的值是否是一个合法的用户。如果是,就允许进入这一页;如果不是,就不允许进入这一页。这是我们以前采用的方法,做过系统的都会有印象。

 

     这种方法比较独立,它需要的知识就是一个Session(这个在ASP.NET中有讲过,可能我们之前不知道这个是Session),然后每一页做一个判断就可以了。但是这种方法效率不高,因为它在Session中,每次运行,运行结束断开后Session就没了。那么用户下次还需要登陆,我们在上网的时候会发现这样一个问题:有时候我们在登陆一个网站的时候,第一次登陆输入用户名和密码,但是等到第二次登陆的时候就不需要再重新输入了,直接就可以登陆了,这个网站已经把你的登陆信息记录下来了,那么它们是怎么做的呢?有人说是把信息存在了Session里面,可你想过没有,你把用户的身份啊、验证的方式啊都给它存进Session里,每个用户登录都存进Session里,相对来说Session的负担比较重,它在服务器端的内存消耗比较大,势必会影响运行的速度。所以说这样的想法是不合理的,同时这也是我们需要注意的地方,设计的时候要考虑这方面的问题。

 

      在ASP.NET中提供了这样几种方法。如下面的表格

            大抵我们认为这是三种身份验证方式,分别为Windows身份验证、Forms身份验证和Passport身份验证。最后一种None就是没有身份验证,这种我们就不考虑了。

 

           Windows身份验证主要是基于Windows的用户管理,也就是说Windows的安全实际上就是我们ASP.NET应用程序的安全。我们在使用它时主要依靠的是设置。

           Forms身份验证是基于表单的或者是基于窗体的验证,这种验证模式呢它是使用CookieCookie是在客户端本地存储的,相当于一些数据。但是如果你的本机限制了Cookie的话,那么这种方式也不是特别好。有很多书上提过,正因为它有安全隐患,所以你在验证的时候尽量不要使用Cookie。可能会建议你使用Session,但是Session毕竟服务器内存是有限的。现在来说Forms用来做身份验证它还是比较普遍用到的。

           Passport就是属于身份证或者说是护照,那么这种方式他需要跟微软的相关的一些服务器关联比较大。所以说这种用的并不是很多。那么一般情况下,在小型的局域网内,在小型的范围内,使用Windows验证这是可以的。那么在Internet上很多人还是愿意采用这种Forms的身份验证方式。那么像我们用Session那种也有很多人在用,但是Forms相对而言对内存能够节省一点,记忆是在本机。

           下一篇博客我们将具体说一下Forms身份验证。敬请期待!

 

 

 

 

6
1

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:312506次
    • 积分:6758
    • 等级:
    • 排名:第3593名
    • 原创:130篇
    • 转载:6篇
    • 译文:1篇
    • 评论:1507条
    最新评论