2010-08-16 28 views
0

我有一个在IIS7中托管的web应用程序,我已经设置了appPool以管理员身份运行。现在,如果用户登录(表单身份验证),IIS将使用管理员帐户(在appPool中)访问数据库,但如果用户未登录,则IIS将使用导致错误的“NT AUTHORITY \ IUSR”帐户:用户'NT AUTHORITY \ IUSR'登录失败。IIS7中的标识池

任何人都可以请解释为什么它不使用管理员帐户,而用户没有登录?

回答

1

我无法验证你说的是正确的,但我可以告诉你应该怎么做。

1)AppPool用户应该拥有最少的权限,当然不是管理员权限。除非您真的知道您在做什么,否则最好将AppPool用户保留为默认的网络服务。

2)您应该在数据库上创建一个用户,再次使用最不需要的权限,并在web.config中的ConnectionString中使用该用户。

+0

yes ...这仅用于测试..在发布阶段,将为appPool创建一个具有有限权限的专用Windows帐户。现在问题是IIS在什么情况下使用appPool身份而不是(它使用' NT AUTHORITY \ IUSR')? – user384080 2010-08-16 04:15:58

+0

据我所知,AppPool用户运行你的应用程序的所有工作进程。签或不签。我认为你需要看别的地方。你在你的web.config中使用模拟吗? – Jeroen 2010-08-16 04:25:18

+0

我会想,所以..但我已经运行了SQL分析器。第一次访问应用程序(没有用户验证),它使用'NT AUTHORITY \ IUSR'帐户,当用户登录时,它将使用应用程序池中的标识。 – user384080 2010-08-16 06:26:55