【问题标题】:Bypassing Windows authentication for SSRS using c#使用 c# 绕过 SSRS 的 Windows 身份验证
【发布时间】:2018-10-04 12:56:26
【问题描述】:

我想访问 SSRS 网络应用。从我的 Windows 应用程序。如果我从 Internet Explorer 访问报表服务器 URL 并保存 Windows 身份验证凭据,则 Windows 应用程序可以工作。但如果我在运行 Windows 应用程序之前没有从浏览器进行身份验证,则不会。

那么我如何在运行 windows 应用程序之前进行身份验证。

这里是认证窗口的SS。SEE image

【问题讨论】:

  • 从 Windows 应用程序发出 HTTP 网络请求时,使用您保存在浏览器中的用户名和密码设置其“凭据”属性。
  • 这不是网络请求。我想访问整个系统中的凭据。

标签: c# sql-server reporting-services cmd


【解决方案1】:

我能够通过连接到服务帐户(因此,报告服务器上的用户)来使身份验证工作,如下所示:

HttpClientConnection100 conn = (HttpClientConnection100)Dts.Connections["HTTP Connection Manager"].AcquireConnection(null);  //get connection from connection manager        
NetworkCredential credentials = new NetworkCredential(conn.ServerUserName, conn.GetServerPassword());               //get credentials from Connection manager

这是来自 SSIS,我使用的代码已被弃用,但如果它有效,它就有效...

【讨论】:

    【解决方案2】:

    谢谢大家的时间,但我已经解决了问题 我尝试使用此代码进行身份验证。

     Uri uri = new Uri("http://ReportServer/Reports");
            WebClient client = new WebClient();
            //client.Credentials = CredentialCache.DefaultCredentials;
            client.Credentials = new NetworkCredential("username", "password");
            using (Stream data = client.OpenRead(uri))
            {
                using (StreamReader sr = new StreamReader(data))
                {
                    string result = sr.ReadToEnd();
                    Console.WriteLine(result);
                }
            }
    

    它奏效了。 :)

    【讨论】:

      猜你喜欢
      • 2016-03-19
      • 2012-01-03
      • 2014-12-20
      • 1970-01-01
      • 2015-08-04
      • 2012-04-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多