SSRS管理站点的SSO

时间:2012-08-17 05:04:24

标签: reporting-services ssrs-2008 single-sign-on ntlm

我们的网络应用程序使用NTLM身份验证并且正常运行。是否可以使用相同的登录凭据自动登录报表管理器,实际上我们希望能够从我们的Web应用程序导航到报表管理器而无需再次登录。 任何解决方案。谢谢。 有人可以帮我添加正确的标签吗?我已经添加了一些,但害怕不合适。感谢

2 个答案:

答案 0 :(得分:1)

如果要对报表管理器执行单点登录,则可以采用Microsoft提供的自定义安全扩展来实现此目的。这是标准解决方案。您可以在此处获取实施详细信息http://www.codeproject.com/Articles/675943/SSRS-2012-Forms-Authentication

另外,正如您所提到的,如果您不想包含复杂性并保持简单,只需通过获取验证页面的DOM并处理单击来实现登录。但是,只有在确定网页中标记的命名时,该方案才有效。

检查下面的示例

public MainWindow()
{
InitializeComponent()
WinFormWebBrowser.Navigate(Url);
WinFormWebBrowser.DocumentCompleted += WinFormWebBrowser_DocumentCompleted;
}

void WinFormWebBrowser_DocumentCompleted(object sender, System.Windows.Forms.WebBrowserDocumentCompletedEventArgs e)
        {
            try
            {
                    HtmlElement ele = WinFormWebBrowser.Document.GetElementById("email");
                    if (ele != null)
                        ele.InnerText = "username";

                    ele = WinFormWebBrowser.Document.GetElementById("pass");
                    if (ele != null)
                        ele.InnerText = passWord;

                    ele = WinFormWebBrowser.Document.GetElementById("loginbutton");
                    if (ele != null)
                        ele.InvokeMember("click");
                WinFormWebBrowser.DocumentCompleted -=WinFormWebBrowser_DocumentCompleted;

            }
            catch
            {

            }

        }

答案 1 :(得分:0)

Reporting Services主要是一个Intranet应用程序,因此默认安全性是Windows Auth。当然,Reporting Services是可扩展的,也可以通过互联网访问,但为此目的,用户必须打入Windows凭据(NTLM或Basic),否则必须重写RS'身份验证机制。如果您的应用程序在Forms Auth上,您可以在RS上进行类似的身份验证,同时将身份验证cookie从您的应用程序传递到RS的身份验证扩展。来自Alex共享的codeplex的FBA样本可能是您的起点。

您可能还想知道,您可以在应用程序中封装RS'功能,用户永远不会直接访问RS,但您的应用程序会通过RS SOAP APIs拨打RS及其报告。