我正在尝试为Web服务器上的.Net应用程序的用户强制执行Windows身份验证,以访问SSAS上的Microsoft Analysis Services数据库上的多维数据集,并且只是试图让它运行起来!
我在web.config中使用 <identity impersonate="true" />
. IIS中禁用匿名访问,并选择了集成Windows身份验证 . appPool作为指定的标识运行;一个单独的Windows帐户,已在Active Directory中被授予"Account is trusted for delegation" . 我还让网络人员在Web服务器上为此身份创建并注册SPN . 尝试访问.Net应用程序的用户在其AD帐户中未选择"Account is sensitive and cannot be delegated" .
如果用户从Web服务器本地访问.Net应用程序,它可以正常工作,但是当从客户端的PC访问.Net应用程序时,他们会收到错误:“传输层中遇到错误”“对等体过早关闭了连接” . 使用SQL事件探查器进行跟踪我可以看到尝试验证失败的NTUserName是ANONYMOUS LOGON .
为什么不委托用户的身份验证?
Solution:
在SSAS服务器上为here所述的OLAP服务注册SPN修复了它!即Setspn.exe -A MSOLAPSvc.3 / Servername mydomain \ theuser .
1 回答
听起来您的Web应用程序并没有真正 grab 他们的身份和/或将其传递给.NET应用程序 . 你能设置一个测试页来验证它是否获得了他们的Windows ID吗?
编辑:本文可能有所帮助:http://www.eggheadcafe.com/articles/20050703.asp
尝试设置一个空白的debug.aspx页面,让它在后面的代码中说:
从客户端PC点击该页面,这将帮助您弄清楚网页实际工作的内容 . 本文可以帮助您解决如何解决问题 .