2010-02-26 13 views
5

W ASP.NET mogę przechowywać ciąg połączenia w web.config, jak mądry muszę przechowywać ciąg połączenia lub jakąś wartość konfiguracyjną w jakimś pliku dla klasycznej ASP.Gdzie przechowywać ciąg połączenia dla klasycznej ASP?

Jak mogę to zrobić? Aby to osiągnąć, muszę użyć pliku XML i zapisać w nim ciąg połączenia?

Jaka jest najlepsza praktyka ???

Odpowiedz

6

użyć globa.asa, aby ustawić wartość w obiekcie aplikacji.

+0

To działa w obrębie tej jednej aplikacji, ale to nie działałoby w całym przedsiębiorstwie (zakładając, że jest wiele aplikacji). –

+0

Konfiguracja jest zwykle dla każdej aplikacji (w tym asp.net web.config). Bezpieczeństwo jest również najlepszą praktyką, aby używać różnych kont użytkowników bazy danych dla każdej aplikacji. –

+0

A jeśli każdy z moich klientów ma ciąg połączenia? Każdy z nich uzyskuje dostęp do bazy danych Azure SQL. – Onaiggac

5

Możesz utworzyć plik ASP, który zawiera ciąg połączenia jako zmienną łańcuchową wraz z innymi informacjami konfiguracyjnymi, a następnie umieść go w plikach łączących się z bazą danych.

+0

Powinien to być plik .inc lub .asp? – nimi

+3

to plik .asp. W odległej przeszłości widziałem serwer skonfigurowany w taki sposób, że pliki .inc nie były interpretowane przez środowisko wykonawcze asp, co skutkowało pobieraniem przez serwer źródła pliku .inc. Byłoby to znacznie mniej prawdopodobne w przypadku pliku .asp. –

+0

@Nimesh i @Paul, jak sugeruje Joost w swojej odpowiedzi, użycie 'global.asa' wydaje się lepszym rozwiązaniem. Jest dostępne dla wszystkich stron bez potrzeby dodawania czegokolwiek ... –

2

Cytat Podniosłem niedawno ...

Nie rób czegoś głupiego jak sklep tajnego w pliku, który siedzi w katalogu wirtualnego na serwerze WWW (web.config przychodzi na myśl). Serwery WWW były znane z przypadkowo zezwalają na pobieranie plików pobranych z powodu błędów. Dla przykład ciągi połączeń w klasycznych stronach ASP może zostać skradziony w ubiegłym przez przeglądarkę internetową skierowaną do „page.asp :: $ DATA” zamiast page.asp. To oszukane IIS do myśli, że wniosek dotyczył pliku statycznego , ponieważ .asp :: $ DATA nie pasowałoby do niczego w swojej mapie skryptu . Ale przyrostek :: $ DATA ma specjalne znaczenie dla działającego systemu dla działającego systemu : Wskazuje domyślny strumień NTFS dla pliku, który otrzymuje się w postaci po przeczytaniu normalnie zawartości pliku . Innymi słowy, zapytanie o system plików page.aspx :: $ DATA jest takie samo, jak z zapytaniem o zawartość pliku page.aspx w wersji . W ten sposób IIS będzie podawać źródło strony ASP zamiast interpretować ją jako skrypt . Przez lata było wiele takich shenaniganów, , ale większość ludzi zgodziłaby się, że lepiej jest przechowywać poufne pliki poza jakimkolwiek katalogiem wirtualnym na serwerze WWW . Nawet lepiej, zachowaj wrażliwe pliki na innej partycji , gdzie znajdują się twoje wirtualne katalogi .

Powiązane problemy