一.ASP.NET模拟简介
缺省情况下,ASP.NET应用程序以本机的ASPNET帐号运行(当机器上安装.net framework 后,操作系统会自动生成这个帐号),该帐号属于普通用户组,权限受到一定的限制,以保障ASP.NET应用程序运行的安全.但有时需要某个ASP.NET应用程序或程序中的某段代码执行需要特定权限的操作,比如某个文件的存取,这时就需要给该程序或相应的某段代码赋予某个帐号的权限以执行该操作,这种方法称之为身份模拟(Impersonation).-------摘自MSDN,WebCast,邵志东的讲座ASP.NET的安全性.
二.具体应用.
在ASP.NET应用程序中使用身份模拟一般用于资源访问控制.而最实用的启用模拟的方法是:在代码中模拟IIS认证帐号.因为这种方法比较灵活,可以在指定的代码段中使用身份模拟,在该代码段之外再恢复使用ASPNET本机帐号.
使用该方法的要求:
1.必须使用Windows的认证身份标志.
也即在web.config中有如下配置:
<authentication mode="Windows" />
2.不允许使用匿名访问该页面.
也即在web.config中有如下配置:
<authorization>
<deny users="?"/>
</authorization>
三.代码示例.
using
System.IO;
namespace AspFileOp
... {
/**//// <summary>
/// FileOperate 的摘要说明。
/// </summary>
public class FileOperate : System.Web.UI.Page
...{
protected System.Web.UI.WebControls.TextBox tbContext;
protected System.Web.UI.WebControls.Button btCreate;
protected
namespace AspFileOp
... {
/**//// <summary>
/// FileOperate 的摘要说明。
/// </summary>
public class FileOperate : System.Web.UI.Page
...{
protected System.Web.UI.WebControls.TextBox tbContext;
protected System.Web.UI.WebControls.Button btCreate;
protected