面对IIS和Windows身份验证中托管的ASP.NET的问题

时间:2011-03-23 18:42:46

标签: c# asp.net iis

我有一个在IIS 7.5中托管的asp.net网站

网站必须使用Windows身份验证。用户将添加到AD组。 AD用户组可以完全控制发布网站的Web文件夹。 Server / IIS_IUSRS也可以完全控制Web文件夹。

网站需要使用的数据存储在另一台服务器中。 AD组对存储数据的文件夹具有完全控制权。 我正在使用经典模式,因为Integrated打破了它。

网站身份验证和APP池设置应该是什么?

2 个答案:

答案 0 :(得分:1)

就我个人而言,我已成为将应用程序池标识设置为AD服务帐户,然后允许该应用程序使用这些凭据访问数据库和其他资源的粉丝。无需传递连接字符串上的凭据或尝试模拟用户(编辑:应注意这适用于使用Windows集成安全性的资源)。也无需尝试让用户直接访问数据存储区或其他资源,只需要应用程序凭据即可访问。最初设置起来有点麻烦,但从长远来看更容易管理。

每当我要求他们为我建立一个新站点时,我发送给我们服务器组的清单:(注意这是基于Win Serv2003和IIS 6,在新版本中可能会有所不同。)

  • 为此设置单独的应用程序池 应用
  • 将App池配置为以 服务帐户
  • 将服务帐户添加到 服务器上的IIS_WPG组
  • 确保IIS_WPG组已读取, 阅读&执行,列出文件夹 网站的内容权限 目录和读取和列出文件夹 内容到C:\ Windows \ Temp 文件夹(或等效文件)。
  • 授予用户权限“调整内存 流程的配额“,”替换a 进程级令牌“和”登录为 服务“到服务帐户

答案 1 :(得分:1)

不要混淆IIS自动化和ASP.NET自动化:

IIS自动化

  • IP / DNS地址限制
  • Web权限(读取,写入,脚本源访问...)
  • NTFS权限(仅限非ASP.NET ISAPI扩展名:.htm,.jpg ...)

ASP.NET自动化

  • 网址授权(<authorization>元素)
  • 文件授权(仅限ASP.NET ISAPI扩展名:.aspx,.ascx ...)
  • 主要权限(要求)
  • .NET角色

限制对您网络的访问:

  • 取消选中匿名访问
  • 配置NTFS权限

访问您的数据文件夹,几个解决方案:

  • 使用应用程序池的服务帐户,在文件夹中允许该帐户并管理应用程序中的访问控制
  • 在访问数据文件夹时,使用默认的IIS 7 ASP.NET帐户和impersonate代码本地用户

      

    System.Security.Principal.WindowsImpersonationContext   impersonationContext;   impersonationContext =       ((System.Security.Principal.WindowsIdentity)User.Identity).Impersonate();

         

    //插入在。下运行的代码   验证的安全上下文   用户在这里。

         

    impersonationContext.Undo();

  • 全局激活impersonation<identity impersonate="true"/>);不喜欢这个