我正在尝试为 Windows 7 企业服务器上 iis 7.5 上的 ASP.net MVC 项目的特定域帐户设置应用程序池凭据。我正在使用 .Net 版本 4,我相信这在整个 iis 界面中设置正确。
我们已经以 domainName\username 的形式设置了一个用户帐户,并带有一个特定的密码,我将表示 password0(不是它的真实姓名)。当我输入用户名 (domainName\username) 和特定密码 (password0) 并确认后,Set Credentials 会显示一个消息框,提示指定密码无效。输入新密码。
在对 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 应用程序的已发布文件夹中。
我意识到有相关的堆栈溢出帖子,但我无法得到任何工作,我不愿意重新打开旧问题。这是一个相当重要的设置,以使 MVC 在我们的商店中通常成为一个可行的解决方案。
我已经添加了一些我在评论中尝试过的东西,然而,虽然有些东西在有效操作的意义上“有效”,但迄今为止它们还没有解决整体问题。
有谁知道如何做到这一点,一种解决方法,或者甚至有一个链接到这个配置场景的分步设置?
提前致谢!
我正在调整同样的问题并检查了列表中的所有内容,但没有任何帮助。我的解决方法是转到计算机管理,选择本地用户和组,然后单击有问题的用户的属性。在“常规”选项卡上选中了“帐户被锁定”复选框。我没有在任何其他用户屏幕上看到这一点。最后一件事就是检查您是否仍有问题,其他一切似乎都已正确设置。
事实证明,我在这台机器上没有足够的权限,我们服务器组中的某个人很容易就能做到这一点。另请参阅https://stackoverflow.com/questions/27432364/mvc-5-iis-7-5-double-hop-issue-avoid-hard-coded-sql-passwords/27550079#comment44092453_27550079我在其中发布了以下内容:(在这里更正了一个拼写错误,由于某种原因不允许我在那里编辑):
另一种方法是让应用程序池在用户帐户(最好是域帐户)下运行,然后在 web.xml 中使用以下设置。配置:集成安全=假;可信连接=真;注意:我也使用 MultipleActiveResultSets=true; 这有助于解决其他问题...相关的应用程序池帐户必须被授予对您的应用程序具有相关权限的 SQL 帐户