我正在尝试为 Windows 7 企业服务器上的 iis 7.5 上的 ASP.net MVC 项目的特定域帐户设置应用程序池凭据。我使用的是 .Net 版本 4,我相信这在整个 iis 界面中都设置正确。
我们已经以 domainName\username 的形式设置了一个用户帐户,并设置了一个特定的密码,我将其表示为 password0(不是其真实名称)。当我输入用户名(domainName\username)和特定密码(password0)并确认后,设置凭据会显示一个消息框,提示“指定的密码无效。请输入新密码”。
在对 Stack Overflow 和其他地方进行大量研究之后,这几乎总是不是密码问题(请注意特定错误消息的选择有多好,但我离题了),而通常是帐户和机器设置的配置问题。
一个站点建议使用命令提示符来输入设置,这对应用程序池有用 - 对于那些感兴趣的人来说,格式是:
appcmd set config /section:applicationPools "/[name='specificAppPoolName'].processModel.identityType:SpecificUser" "/[name='specificAppPoolName'].processModel.userName:domainName\username" "/[name='specificAppPoolName'].processModel.password:password0"
但是,对于下一步,当我使用应用程序池转到 iis 站点并使用 iis --> 站点 --> 特定站点 --> 基本设置时,此方法有效
并尝试使用“以...身份连接”按钮,直通和特定用户都不起作用,如果我尝试设置特定用户,旧密码问题会再次出现(毫无疑问这不是输入错误的密码,再次感谢设置这些错误消息的人)。
测试设置给出类似登录失败:未知用户名或密码错误,代码为 0x8007052E(身份验证)并且用于访问指定物理路径的凭据无效(授权)
注意:我已经运行
aspnet_regiis -ga domainName\username
几次。
我还特意将 domainName\username 添加到了 MVC 应用程序的已发布文件夹中。
我知道有相关的 stack overflow 帖子,但我无法让任何东西工作,我不愿意重新提出旧问题。这是一个相当重要的设置,可以使 MVC 成为我们商店中可行的解决方案。
我在评论中添加了一些我尝试过的东西,但是,虽然其中一些东西在有效操作的意义上“有效”,但到目前为止它们还没有解决整体问题。
是否有人知道如何执行此操作、解决方法,或者甚至有针对此配置方案的分步设置的链接?
提前致谢!
答案1
我正在研究同样的问题,检查了列表上的所有内容,但没有任何帮助。我的解决方法是进入计算机管理,选择本地用户和组,然后单击有问题的用户的属性。在“常规”选项卡上,已选中“帐户已锁定”复选框。我没有在其他任何用户屏幕上看到此信息。最后检查一下您是否仍然遇到问题,并且其他所有设置似乎都正确。
答案2
事实证明,我没有足够的权限访问该机器,而我们服务器组中的某个人却能轻易做到这一点。另请参阅https://stackoverflow.com/questions/27432364/mvc-5-iis-7-5-double-hop-issue-avoid-hard-coded-sql-passwords/27550079#comment44092453_27550079我发布了以下内容:(此处更正了拼写错误,由于某种原因不允许我编辑那里):
另一种方法是让应用程序池在用户帐户(最好是域帐户)下运行,然后在 web.config 中使用以下设置:Integrated Security=false; Trusted_Connection=True; 注意:我还使用 MultipleActiveResultSets=true; 这有助于解决其他问题...必须为相关的应用程序池帐户授予具有应用程序相关权限的 SQL 帐户