【发布时间】:2010-08-16 03:19:30
【问题描述】:
我有一个托管在 IIS7 中的 Web 应用程序,并且我已将 appPool 设置为以管理员身份运行。现在,如果用户登录(表单身份验证),IIS 将使用管理员帐户(在 appPool 中)访问数据库,但是如果用户未登录,则 IIS 将使用导致错误的“NT AUTHORITY\IUSR”帐户: 用户“NT AUTHORITY\IUSR”登录失败。
谁能解释一下为什么在用户没有登录时它没有使用管理员帐户?
【问题讨论】:
我有一个托管在 IIS7 中的 Web 应用程序,并且我已将 appPool 设置为以管理员身份运行。现在,如果用户登录(表单身份验证),IIS 将使用管理员帐户(在 appPool 中)访问数据库,但是如果用户未登录,则 IIS 将使用导致错误的“NT AUTHORITY\IUSR”帐户: 用户“NT AUTHORITY\IUSR”登录失败。
谁能解释一下为什么在用户没有登录时它没有使用管理员帐户?
【问题讨论】:
我无法验证你所说的是否正确,但我可以告诉你应该怎么做。
1) AppPool 用户应该拥有尽可能少的权限,当然不是管理员权限。除非您真的知道自己在做什么,否则最好将 AppPool 用户留给默认的 NETWORK SERVICE。
2) 您应该在您的数据库上创建一个用户,再次使用最少需要的权限,并在您的 web.config 的 ConnectionString 中使用该用户。
【讨论】: