4

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

4

2 回答 2

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
            {

            }

        }
于 2013-10-31T17:29:57.670 回答
0

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

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

于 2013-08-15T18:05:29.613 回答