IIS7 中的身份池
Posted
技术标签:
【中文标题】IIS7 中的身份池【英文标题】:Identity pool in IIS7 【发布时间】:2010-08-16 03:19:30 【问题描述】:我有一个托管在 IIS7 中的 Web 应用程序,并且我已将 appPool 设置为以管理员身份运行。现在,如果用户登录(表单身份验证),IIS 将使用管理员帐户(在 appPool 中)访问数据库,但是如果用户未登录,则 IIS 将使用导致错误的“NT AUTHORITY\IUSR”帐户: 用户“NT AUTHORITY\IUSR”登录失败。
谁能解释一下为什么在用户没有登录时它没有使用管理员帐户?
【问题讨论】:
【参考方案1】:我无法验证你所说的是否正确,但我可以告诉你应该怎么做。
1) AppPool 用户应该拥有尽可能少的权限,当然不是管理员权限。除非您真的知道自己在做什么,否则最好将 AppPool 用户留给默认的 NETWORK SERVICE。
2) 您应该在您的数据库上创建一个用户,再次使用最少需要的权限,并在您的 web.config 的 ConnectionString 中使用该用户。
【讨论】:
是的...这仅用于测试..在发布阶段将为appPool创建一个具有有限权限的专用Windows帐户..现在的问题是IIS在什么情况下使用appPool身份而不是(使用'NT AUTHORITY\IUSR')? 据我所知,AppPool 用户运行您应用程序的所有工作进程。登录与否。我认为您需要寻找其他地方。您是否在 web.config 中使用模拟? 我会这么认为.. 但我已经运行了 sql profiler。第一次访问应用程序时(没有用户验证),它使用“NT AUTHORITY\IUSR”帐户,当用户登录时,它使用应用程序池中的身份..以上是关于IIS7 中的身份池的主要内容,如果未能解决你的问题,请参考以下文章