本地ASP.NET MVC应用Windows身份验证问题及impersonate配置疑问
本地与IIS部署下
<identity impersonate>配置差异的原因 本地IIS Express的运行限制
IIS Express作为开发轻量服务器,对Windows身份模拟的支持不如正式IIS完善。当你配置<identity impersonate="true" password="" userName=""/>时,空的用户名和密码会导致服务器无法正确完成身份模拟流程——它既没法用配置的凭据,也不能无缝继承当前请求的用户身份,最终触发身份验证循环,反复弹出登录框。正式IIS的身份管理机制
正式IIS拥有完整的身份验证管道,开启impersonate="true"且不指定凭据时,会自动使用当前请求的Windows用户身份进行模拟。IIS本身的权限体系能正确传递这个身份到应用程序,甚至到数据库连接环节,所以不会出现验证失败的问题。数据库连接的身份权限差异
本地运行时,开启模拟但凭据为空,应用程序无法用有效身份访问SQL Server,数据库权限校验失败后会反向触发身份验证弹窗。注释掉模拟配置后,IIS Express会用你当前的本地登录账号作为应用运行身份,只要这个账号有数据库访问权限,就能正常取数据。而正式IIS中,模拟生效后,请求用户的身份会被传递到数据库,只要预先配置好对应权限,就能正常工作。
内容的提问来源于stack exchange,提问作者Pradeep
相关产品推荐
相关产品推荐

