ReportViewer中设置ServerReport.ReportServerCredentials属性的方法(WEB版)
生活随笔
收集整理的這篇文章主要介紹了
ReportViewer中设置ServerReport.ReportServerCredentials属性的方法(WEB版)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
當使用SSRS技術來布置報表,可能使用MS自帶的ReportViewer控件來讀取報表.
它分為Web和Windows兩種版本;此處Web版.
ServerReport.ReportServerCredentials屬性的類型為Microsoft.Reporting.WebForms.IReportServerCredentials,它可提供三種認證方式所需的證書(Credential):
?1) Form認證證書(GetFormsCredentials);
?2) 扮演認證證書(ImpersonationUser);
?3) 網絡認證證書(NetworkCredentials).
?
?當報表的服務器端使用網絡認證時,需要實現NetworkCredentials接口,而且必須將GetFormsCredentials()接口的返回值設置為False,否則會導致論證失敗.
?示例代碼如下:
?
代碼?1???'''?<summary>?2?????'''?Initialize?report?viewer
?3?????'''?</summary>
?4?????'''?<remarks>Viewer是ReportViewer的一個實例</remarks>
?5?????Protected?Overridable?Sub?LoadReportViewer()
?6?????????With?Viewer
?7?????????????.Visible?=?True
?8?????????????.ProcessingMode?=?Microsoft.Reporting.WebForms.ProcessingMode.Remote
?9?????????????.ServerReport.ReportServerUrl?=?New?Uri(<報表服務器的URL>)
10?????????????.ServerReport.ReportPath?=?<報表相對于ReportServerUrl的路徑>
11?????????????.ServerReport.ReportServerCredentials?=?<IReportServerCredentials的實例>
12?????????????.ShowParameterPrompts?=?False
13?????????End?With
14?????End?Sub
15?
16?
17????'''?<summary>
18?????'''?Internal?implementation?for?report?server?credentails.
19?????'''?</summary>
20?????'''?<remarks></remarks>
21?????Public?Class?ReportServerCredentials
22?????????Implements?IReportServerCredentials
23?
24?????????Private?_Domain?As?String
25?????????Private?_Password?As?String
26?????????Private?_UserName?As?String
27?
28?????????Public?Sub?New()
29?????????????Me.New(Nothing,?Nothing,?Nothing)
30?????????End?Sub
31?
32?????????Public?Sub?New(ByVal?userName?As?String,?ByVal?password?As?String)
33?????????????Me.New(userName,?password,?Nothing)
34?????????End?Sub
35?
36?????????Public?Sub?New(ByVal?userName?As?String,?ByVal?password?As?String,?ByVal?domain?As?String)
37?????????????_UserName?=?userName
38?????????????_Password?=?password
39?????????????_Domain?=?domain
40?????????End?Sub
41?
42?????????Public?Property?Domain()?As?String
43?????????????Get
44?????????????????Return?_Domain
45?????????????End?Get
46?????????????Set(ByVal?value?As?String)
47?????????????????_Domain?=?value
48?????????????End?Set
49?????????End?Property
50?
51?????????Public?Property?Password()?As?String
52?????????????Get
53?????????????????Return?_Password
54?????????????End?Get
55?????????????Set(ByVal?value?As?String)
56?????????????????_Password?=?value
57?????????????End?Set
58?????????End?Property
59?
60?????????Public?Property?UserName()?As?String
61?????????????Get
62?????????????????Return?_UserName
63?????????????End?Get
64?????????????Set(ByVal?value?As?String)
65?????????????????_UserName?=?value
66?????????????End?Set
67?????????End?Property
68?
69?????????Public?Function?GetFormsCredentials(ByRef?authCookie?As?System.Net.Cookie,?ByRef?userName?As?String,?ByRef?password?As?String,?ByRef?authority?As?String)?As?Boolean?Implements?Microsoft.Reporting.WebForms.IReportServerCredentials.GetFormsCredentials
70?????????'---注意此處必須設置為False,否則論證為失敗
71?????????????Return?False
72?????????End?Function
73?
74?????????Public?ReadOnly?Property?ImpersonationUser()?As?System.Security.Principal.WindowsIdentity?Implements?Microsoft.Reporting.WebForms.IReportServerCredentials.ImpersonationUser
75?????????????Get
76?????????????????Return?Nothing
77?????????????End?Get
78?????????End?Property
79?
80?????????Public?ReadOnly?Property?NetworkCredentials()?As?System.Net.ICredentials?Implements?Microsoft.Reporting.WebForms.IReportServerCredentials.NetworkCredentials
81?????????????Get
82?????????????????Return?New?System.Net.NetworkCredential(Me.UserName,?Me.Password,?Me.Domain)
83?????????????End?Get
84?????????End?Property
85?????End?Class
轉載于:https://www.cnblogs.com/beiguren/archive/2010/01/18/1650709.html
總結
以上是生活随笔為你收集整理的ReportViewer中设置ServerReport.ReportServerCredentials属性的方法(WEB版)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 编写可测试的JavaScript代码
- 下一篇: 双向循环链表:字母表实现前后移动