【问题标题】:Impersonation In Crystal ReportsCrystal Reports 中的模拟
【发布时间】:2018-12-02 05:40:59
【问题描述】:

我一直在尝试更新与 Crystal Reports 交互的 WCF 项目,以使其通过 Windows 身份验证连接到 MS SQL Server。 它是一个 WCF 项目,但作为 Windows 服务而不是通过 IIS 运行。

我正在使用SimpleImpersonation 进行模拟步骤。 本质上,如果在传入的 SOAP 请求中提供了正确的值,包括 IntegratedSecurity=true,它会模拟另一个用户并尝试使用 IntegratedSecurity 登录。

我的代码如下所示:

using (Impersonation.LogonUser(domain, username, password, LogonType.NewCredentials)) {
    reportDocument.Execute();
}

我知道模拟是有效的,因为我在using 语句之前和之后打印了System.Security.Principal.WindowsIdentity.GetCurrent().Name,并且看到用户名在using 之后更改为我想要的。

我已经尝试了每个不同的LogonTypes,但我得到了相同的结果。

我通过调用Execute() 收到Database logon failed 错误消息。 但是,如果我以我试图模拟的帐户启动网络服务,我可以正确连接到数据库。

我的问题是:

  • 模拟是否按我预期的方式工作?难道我做错了什么? (根据文档,它看起来不像)
  • 我需要对适用于 .NET 的 Crystal Reports 运行时进行不同配置吗?

【问题讨论】:

    标签: .net windows wcf crystal-reports impersonation


    【解决方案1】:

    事实证明,我的问题不在于模拟,而在于数据库驱动程序。我在https://archive.sap.com/discussions/thread/3621859上发现了一条评论:

    请检查服务器中是否存在“sqlncli.dll”文件? ..不确定这个文件或其他一些dll。

    我在服务器上安装了https://www.microsoft.com/en-us/download/confirmation.aspx?id=50402,我的代码开始自动运行。

    我希望 Crystal Reports 返回的错误消息更具描述性,但是哦,好吧,至少它可以正常工作。

    【讨论】:

      猜你喜欢
      • 2012-03-20
      • 2015-01-27
      • 1970-01-01
      • 1970-01-01
      • 2012-04-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多