Tak, przechowywanie hasła w postaci zwykłego tekstu w dowolnym miejscu aplikacji jest niebezpieczne. Nie rób tego!
Zamiast tego, należy przechowywać hasła zaszyfrowany w pliku app.config (lub gdzie indziej w pliku konfiguracyjnym, machine.config przykładowo):
Encrypting and Decrypting ApplicationConfigSections
Alternatywnie można zapytaj użytkownika w czasie wykonywania o referencje.
Jeśli chcesz uniknąć jawnego podawania hasła, możesz uwierzytelnić za pomocą uwierzytelniania Windows aktualnie zalogowanego użytkownika. W tym celu można użyć SmtpClient.UseDefaultCredentials
do wysłania wiadomości. Oczywiście działa to tylko wtedy, gdy SmtpServer rozpozna poświadczenia Windows użytkowników.
Jeśli chcesz być bezpieczny od man-in-the-middle ataki i pakiet wąchania, należy użyć protokołu SSL do przesyłania danych uwierzytelniających. Możesz to zrobić przez enabling SSL in the configuration lub po prostu ustawiając własność: SmtpClient.EnableSsl
. (.NET> = 4.0)
Będziesz musiał zaszyfrować hasło, ponieważ każdy zwykły ciąg znaków będzie łatwo przeglądany przy użyciu narzędzi takich jak reflektor. Chciałbym poprosić użytkownika lub przechowywać zaszyfrowane hasło w pliku typu konfiguracji. –
Utwórz ** konto usługi **, które może wysyłać wiadomości e-mail (ale nie wiele więcej) i szyfrować poświadczenia? – SpaceBison