第三章 ASP.NET的安全模式
ASP.NET的安全模式
1.ASP.NET的安全模式
根据所请求资源的类型,IIS能够自己处理请求,也可以自己不处理请求。如果资源请求一个ASPX页面,则IIS将请求经过身份验证用户(或匿名用户)的安全令牌一起传递给ASP.NET。接下来要发生的事情就取决于ASP.NET的配置。
1.1 Windows身份验证
IIS首先从域登录中获得用户的证书。如果这个过程失败,IIS就显示一个弹出对话框,用户可以在其中输入或重新输入登录信息。要让ASP.NET应用程序使用基于Windows的身份验证,首先要创建一些用户和组。
1.2 Passport身份验证
验证终端用户的另一种方法是使用Microsoft的Passport标识系统。有Passport账户的用户可以有一个签名解决方案,也就是说,他只需这些证书就可以登录到Internet的站点或其他支持的Passport的站点和应用程序上。
1.3 窗体身份验证
Windows和Passport身体验证对于现实的Internet应用程序几乎都不使用。Windows身份验证是不切实际的,因为Web应用程序用户必须具有该应用程序的域中的Windows账户。
2 基于窗体的身份授权模式
<forms>元素的主要属性
<credentials>指定用户和密码的组合
对密码进行加密
forms验证总结
<authorization>对用回户进行授权
设置用户访问权限
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Web;
- using System.Web.UI;
- using System.Web.UI.WebControls;
- using System.Web.Security;
- public partial class _Default : System.Web.UI.Page
- {
- protected void Page_Load(object sender, EventArgs e)
- {
- }
- protected void Button1_Click(object sender, EventArgs e)
- {
- Roles.CreateRole(TextBox1.Text);
- disp();
- } //roles添加
- protected void disp()
- {
- DropDownList1.Items.Clear();
- foreach (var item in Roles.GetAllRoles())
- {
- DropDownList1.Items.Add(item);
- }
- } //roles显示
- protected void Button2_Click1(object sender, EventArgs e)
- {
- foreach (var item in Roles.GetAllRoles())
- {
- if (item == DropDownList1.SelectedItem.Text)
- {
- Roles.DeleteRole(DropDownList1.SelectedItem.Text);
- }
- }
- Roles.CreateRole(TextBox2.Text);
- disp(); //显示
- } //roles修改
- protected void pwd1_TextChanged(object sender, EventArgs e)
- {
- }
- protected void Button3_Click(object sender, EventArgs e)
- {
- Membership.CreateUser(name.Text, pwd.Text, mail.Text); //创建用户
- disp1();
- }
- protected void disp1()
- {
- // Response.Write(Membership.GetAllUsers());
- DropDownList2.Items.Clear();
- foreach (var item in Membership.GetAllUsers())
- {
- DropDownList2.Items.Add(item.ToString());
- }
- }
- protected void Button4_Click(object sender, EventArgs e)
- {
- Membership.DeleteUser(DropDownList2.SelectedItem.Text); //删除记录
- disp1();
- }
- protected void Button5_Click(object sender, EventArgs e)
- {
- Roles.DeleteRole(DropDownList1.SelectedItem.Text); //删除类别
- disp();
- }
- }