首页 文章

使用双跃点窗口身份验证连接到Microsoft Analysis Services多维数据集

提问于
浏览
2

我正在尝试为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 回答

  • 2

    听起来您的Web应用程序并没有真正 grab 他们的身份和/或将其传递给.NET应用程序 . 你能设置一个测试页来验证它是否获得了他们的Windows ID吗?

    编辑:本文可能有所帮助:http://www.eggheadcafe.com/articles/20050703.asp

    尝试设置一个空白的debug.aspx页面,让它在后面的代码中说:

    private void Page_Load(object sender, System.EventArgs e)
    {
        Response.Write("Page Identity: " + Page.User.Identity.Name);
        Response.Write("Windows Identity: " + System.Security.Principal.WindowsIdentity.GetCurrent().Name);
        Response.Write("Thread Identity: " + System.Threading.Thread.CurrentPrincipal.Identity.Name);
    }
    

    从客户端PC点击该页面,这将帮助您弄清楚网页实际工作的内容 . 本文可以帮助您解决如何解决问题 .

相关问题