1.ASP.NET 的安全模式
1.1安全的必要性
(1)构造特殊的链接地址,导致文件内的数据泄露
(2)数据库泄露
(3)安全防范的首要策略:所有的HTTP访问都要经过IIS,所以限制IIS的安全性是关键(只有管理员才能登录管理员的界面)
1.2. ASP.NET 的安全模式
(1)根据所请求资源的类型,IIS能够自己处理请求,也可以不自己处理请求
(2)如果资源请求一个ASP页面,则IIS将请求经过身份验证用户(或匿名用户)的安全令牌一起传递给ASP.NET,接下来发生的事情就取决于ASP.NET的配置
(3) ASP.NET支持的4种授权方法:
1) Windows:IIS验证,在内联网环境中非常有用
2) Passport:微软集中式身份验证,一次登录便可访问所有成员站点,需要收费
3) Form:窗体验证,验证帐号/密码,Web编程最佳最流行的验证方式
示例:
<authentication mode="Forms">
<forms name="dd" loginUrl="logde.aspx"/>
</authentication>
<authorization>
//阻止用户匿名访问
<deny users="?"/>
</authorization>
< authentication>指用户定义的登录窗体的url。<authorization>显示拒绝访问的用户显示该窗体。“?”表示任何匿名的、未将身份验证的用户。
4)None:表示ASP.NET自己根本不执行身份验证,完全依赖IIS身份验证
1.3.认证和授权机制
(1)认证是确定用户身份的过程。在用户通过了身份验证后,开发人员就可以确定该用户是否有权继续操作。如果没有进行身份验证,就不能进行实体的授权
(2)授权是确定已验证的用户是否有权访问应用程序中的某个部分、某个点或只访问应用程序提供的特定数据集
2.基于窗体的授权模式
(1)允许用户访问整个应用程序或其特定资源的一种流行的模式
(2)IIS接收请求,但不进行处理,而传递给ASP.NET应用程序
2.1<forms>元素的主要属性
Forms的验证实例
<authentication mode="Forms" >
<forms loginUrl="logde.aspx" defaultUrl="Default.aspx">
<credentials passwordFormat="Clear">
//用于添加用户名和密码
<user name="admin" password="admin"/>
<user name="user" password="123456"/>
</credentials>
</forms>
</authentication>
<authentication mode="Forms" >
3.<Credentials>指定用户名和密码的组合
<forms loginUrl="logde.aspx" defaultUrl="Default.aspx">
<credentials passwordFormat="Clear">
<user name="admin" password="admin"/>
<user name="user" password="123456"/>
</credentials>
</forms>
</authentication>
string name = TextBox1.Text;
string password = TextBox2.Text;
if (FormsAuthentication.Authenticate(name,password))
{
//把请求当前页面重定向到当初的请求资源(是否长久保存cookie)
FormsAuthentication.RedirectFromLoginPage(name, false);
}
Else {
}