Udostępnij za pośrednictwem


Określanie połączeń i poświadczeń dla kontrolki serwera sieci Web Podglądu raportów

Aby określić połączenie z ReportViewer sterowania na serwerze raportów ułatwiają wiedzieć warunki, na jakich połączenia zostały wprowadzone.

  • Przy uruchamianiu się po załadowaniu strony sieci Web, która zawiera formant ReportViewer kontrolki łączy do serwera raportów do ustanowienia sesji raportu, pobrać lub ustawić właściwości parametru raportu i pobrać listy rozszerzeń renderowania, które są dostępne na serwerze.

  • Jeśli formant został uruchomiony z AsyncRendering=true, kod HTML pod kątem raportu jest pobierana asynchronicznie za pomocą obiektu IFrame Po wyrenderowaniu strony.

  • Jeśli raport zawiera odwołania obrazu zewnętrznego, ReportViewer kontroli pobiera obrazów za pośrednictwem oddzielne żądania przy użyciu ReportViewer programu obsługi HTTP, na którym każdego żądania jest wprowadzone w obszarze własnego połączenia.

  • Po wyrenderowaniu raportu dodatkowe połączenia może wystąpić, jeśli eksportujesz kolekcję wygenerowanego raportu do innego formatu. Odebrano żądanie eksportu są wysyłane z przeglądarki do serwera raportów przy użyciu oddzielnego połączenia.

Powodzenie wszystkich tych operacji zależy od tego, czy ReportViewer kontrolka ma prawidłowych informacji dotyczących połączenia z serwerem raportów. Jak określić informacje o połączeniu będzie się różnić w zależności od czynników takich jak określa, czy używasz uwierzytelniania formularzy, uwierzytelnianie systemu Windows, poświadczenia bieżącego użytkownika lub sesji programu ASP.NET.

Jak określić połączeń

Do nawiązania połączenia z serwerem, można ustawić właściwości na ServerReport obiektu lub implementowania interfejsów, które ustawi połączenia, a następnie określ wykonania w pliku Web.config. ReportViewer zawsze najpierw odczytuje plik Web.config i kontroli używa wartości połączenia, jeśli zostały określone.

Jeśli stan sesji jest włączony, można określić, czy można ustawić właściwości w ServerReport obiektu lub określ informacje o połączeniu w pliku Web.config. Jeśli określono informacje o połączeniu w pliku Web.config, nie należy ustawiać właściwości na ServerReport obiektu.

Jeśli stan sesji jest wyłączony, należy zaimplementować IReportServerConnection lub IReportServerConnection2 i określ wykonania w pliku Web.config.

Uwaga

Konto użytkownika, pod którym połączenia musi mieć przypisania roli nieprawidłowy na serwerze raportów.Zarówno w systemie, jak i element przypisania ról na poziomie są używane do tworzenia rozbudowany zestaw uprawnień.Jeśli nie są znane przypisania ról na serwerze raportów, można wykonać samouczek do zapoznaj się z podstawami przypisanie roli.Aby uzyskać więcej informacji, zobacz samouczek: Ustawianie uprawnień w usługach Reporting Services w witrynie MSDN.

Aa983458.collapse_all(pl-pl,VS.140).gifUstawianie właściwości w obiekcie ServerReport

Można ustawić dla serwera raportów właściwości adresu URL i limit czasu na ServerReport podczas przeciągania formantu na formularz sieci Web podczas projektowania.

Domyślnie ReportViewer kontrolki serwera sieci Web łączy się z serwerem raportów, jako użytkownik wątku programu ASP.NET.

Na łączenie się jako inny użytkownik (na przykład, jeśli chcesz, aby wszystkim użytkownikom na łączenie się z serwerem raportów przy użyciu konta jednego użytkownika), należy zaimplementować IReportServerCredentials do serializacji obiektu i przekaż wystąpienie obiektu do ReportViewer.ServerReport.ReportServerCredentials. Ponieważ ReportViewer kontroli może połączyć się z serwerem raportów po zakończeniu przetwarzania strony ASP.NET, obiekt musi być serializacji dla magazynu, jeśli sesji ASP.NET są przechowywane poza procesu (na przykład w SQL Server bazy danych).

Należy zwrócić uwagę, że istnieją dwie zalety bezpośrednio ustawienie właściwości ReportViewer.ServerReport.ReportServerCredentials:

  • Musi być włączona sesji programu ASP.NET.

  • Sesja programu ASP.NET może stać się niepotrzebnie ponieważ ReportViewer kontroli wstawi wystąpienie obiektu w sesji dla każdego użytkownika, przeglądanie strony.

Powyższe wad można uniknąć określając implementacja IReportServerConnection2 w pliku Web.config.

Zalecenia dotyczące sposobu Określ poświadczenia, jeśli stan sesji jest włączona off, zobacz wytyczne dotyczące przechowywania poświadczeń, jeśli sesja programu ASP.NET jest wyłączony w tym temacie.

Aa983458.collapse_all(pl-pl,VS.140).gifOkreślanie połączenia z serwerem raportów w pliku Web.config

Podczas wykonywania IReportServerConnection lub IReportServerConnection2 implementacji należy określić w pliku Web.config aplikacji. Plik Web.config zawiera typ obiektu, zawierający informacje poświadczeń i połączenia.

Uwaga

Musisz określić implementacja IReportServerConnection2 lub IReportServerConnection, a nie IReportServerCredentials w pliku Web.config.IReportServerConnection2jest tworzony na podstawie IReportServerCredentials i dodaje dodatkowe właściwości do określania adres URL serwera raportów, wartość limitu czasu i niestandardowe pliki cookie lub nagłówków HTTP, które ma być używany.

Chociaż IReportServerConnection2 jest wymagany jeśli ASP.NET sesji jest wyłączony, można użyć go z sesji ASP.NET włączone, jeśli chcesz uniknąć zapisywania obiektów w sesji. Aby uzyskać więcej informacji i przykładowy kod, temat programowania odwołania dla IReportServerConnection2. Aby uzyskać więcej informacji na temat dodawania kluczy w pliku Web.config, zobacz Ustawienia pliku Web.config dla Podglądu raportów.

Poniższa tabela zawiera podsumowanie interfejsów, które zapewniają poświadczenia i informacje o połączeniu.

Interface

Opis

IReportServerCredentials

Ten interfejs umożliwia Określ poświadczenia, które ServerReport do nawiązania połączenia z serwerem raportów, jeśli nie chcesz połączyć się jako bieżący użytkownik korzysta z obiektu.

Domyślnie ReportViewer kontroli łączy się z serwerem raportów, jako użytkownik wątku programu ASP.NET.

Możesz określić inny użytkownik, ustawiając ReportViewer.ServerReport.ReportServerCredentials na wystąpienie implementacji obiektu IReportServerCredentials.

IReportServerConnection

Ten interfejs dziedziczy IReportServerCredentials i udostępnia dodatkowe elementy członkowskie służącą do serwera raportów właściwości adresu URL i limitu czasu.

IReportServerConnection2

Ten interfejs dziedziczy IReportServerConnection i zapewnia dodatkowe elementy członkowskie dla określenia niestandardowych plików cookie lub nagłówków, co jest przydatne w przypadku korzystania z jednego produktu logowanie z serwerem raportów.

Aa983458.collapse_all(pl-pl,VS.140).gifWytyczne dotyczące przechowywania poświadczeń, jeśli sesja programu ASP.NET jest wyłączony

Podczas wykonywania IReportServerConnection2, że nie należy przechowywać poświadczenia użytkownika w tej klasie. Jeśli poświadczenia są przechowywane w obiekcie serializacji, nazwy użytkownika i hasła będzie można uszeregować do sesji ASP.NET i przechowywane w SQL Server bazy danych lub innego serwera stanu. Podczas serializacji poświadczenia nie jest zagrożenie bezpieczeństwa, wzrostu powierzchni ataku poświadczenia są przechowywane jako dane sesji.

Następujących podejść są przykłady w celu uniknięcia przechowywania poświadczeń, obok innych danych sesji:

  • Przechowywane poświadczenia do odczytu z pliku konfiguracji lub innych magazynu konfiguracji. Aby uzyskać więcej informacji i przykładowy kod, temat programowania odwołania dla IReportServerCredentials.

  • Odczyt pliku cookie HTTP z żądania ASP.NET o podanie poświadczeń, które różnią się w zależności oparte na komputerze klienckim.

Uwaga

Mimo że masz elastyczność przy wyborze sposób przechowywania poświadczeń poza klasy, należy się upewnić, że tych samych poświadczeń są zwracane dla kolejnych żądań w tej samej sesji raportu.

Zobacz też

Informacje

IReportServerCredentials

IReportServerConnection2

Koncepcje

Ustawienia pliku Web.config dla Podglądu raportów

Konfigurowanie Podglądu raportów na potrzeby renderowania asynchronicznego

Kwestie dotyczące wdrażania raportów serwera

Konfigurowanie Podglądu raportów na potrzeby przetwarzania zdalnego

Dodawanie i konfigurowanie kontrolek Podglądu raportów