background image

Asp.Net 用户验证(自定义 IPrincipal 和 IIdentity)

引言

 

前 一段时间有两个朋友问我,为什么在

HttpModule 中无法获得到 Session 值,因为他

们希望自定义一个

HttpModule

 

,然后在其中获取

Session 来进行用户验证。我奇

怪为什么不使用

.Net Framework 已经提供的验证机制,而要和 Asp 时一样,自

己手工进行

cookie+Session 验证?我们是基于.Net Framework 这个平台进行

编程,所以我觉得,在很多情况下,使用

Framework 已经建立好的机制会显著地

提高工作效率,而且

.NET Framework 内置的验证机制通常也更加安全。

.Net 提 供 了 一 整 套 的 验 证 和 授 权 机 制 , 这 里 验 证 和 授 权 是 不 同 的 概 念 , 验 证 

Authentication

)是指 证明你确实是你所说的人 ,通常是提供一个用户名和

口 令 , 然 后 与 持 久 存 储

( 比 如 数 据 库 )

 

中 的 用 户 名 和 口 令 进 行 对 比 。 授 权

Authorization

)是指 你是否有足够的权限做某件事 ,此时你的身份已经被证

 

明过了(匿名用户、会员还是管理员),授权通常与用户 组或者用户级别联系起来,

不同的用户组拥有不同的权限(访问特定页面或者执行特定操作)。