ASP.NET安全问题--Froms验证的具体介绍(中篇)
用户信息的存储
我们一般把用户的信息,如用户名和密码存放在数据库中。如之前一篇文章说的,我们也可以把用户的用户名和密码信息直接放在web.config文件中。 Forms验证其实对把用户凭证信息放在哪里提供了很大的灵活性。默认情况下是放在web.config中的。如下代码:
<authentication mode="Forms ">
<forms name="MyCookie"
loginUrl="Login.aspx"
timeout="60"
path="/"
protection="All">
<credentials>
<user name="xiaoyang" password="xiaoyang"/>
<user name="panyan" password="panyan"/>
</credentials>
</forms>
</authentication>
见上面的 <credentials>节点,就是我们存放的用户信息。上面的信息是以明文(没有加密)的形式存放。我们也采用加密的方式存放,只要配置如下:<credentials passwordFormat="MD5">,配置 passwordFormat的加密方式就行了。那么用户在传输之前就会被加密。
还有就是把用户信息存储在数据库中,我们后面会讲述的,也是最常用的方式。
web.config配置的一些用法
1.在web.config中添加用户凭证
我们之前说过了,ASP.NET的身份验证中,对于如何存储用户凭证提供了很大的灵活性。默认情况下是把凭证存储在web.config中的。
我们还是来看看之前配置的一些节点信息:
<authentication mode="Forms ">
<forms name="MyCookie"
loginUrl="Login.aspx"
timeout="60"
path="/"
protection="All">
<credentials>
<user name="xiaoyang" password="xiaoyang"/>
<user name="panyan" password="panyan"/>
</credentials
</forms>
</authentication>
在<credentials>中就是我们存储的用户的一些信息。不知道大家是否还记得我们之前已经说过了的Authenticate方法:只有把用户信息存放在了配置文件中,我们才可以使用这个方法,代码如下(判断提交的用户信息是否合法):
bool IsAuthenticate= FormsAuthentication.Authenticate(userName, userPassword);
2.拒绝匿名用户访问
其实这是与用户授权的问题现关联的,关于授权问题,我们以后谈,这里只是简单的提下,算是预热吧!
我们可以拒绝匿名用户访问我们的网站,只要配置如下:
<authorization>
<deny users="?"/>
</authorization>
谈起这个节点,还是有一些话题的,这个我们在专门讲述授权的时候具体谈。现在我们的重点是验证!