Ebben az esetben is segítséget kapunk az ASP.NET-es alkalmazásunk fejlesztésénél: nekünk nem is kell foglalkozni a jelszavak visszafejtésével, ellenőrzésével. Egyszerűen csak meg kell adnunk, hogy melyik felhasználóhoz milyen jelszó tartozik (természetesen ezt már kódolva) és a többit intézi a programunk.
Többek között a web.config állományba is felsorolhatjuk a felhasználói neveket és a hozzájuk tartozó, immár kódolt jelszavakat. Természetesen ezen adatokat tetszés szerint tárolhatjuk máshol is, például egy SQL táblában. Most válasszuk az egyszerűség kedvéért a web.config állományt.
Itt a credentials szekcióban adhatjuk meg a jelszó tárolásának módját, melynek három típusa létezik:
| Mód |
Leírás |
| clear |
nincs kódolás, a szöveg bárki által olvasható |
| SHA1 |
SHA1 titkosítású jelszavak |
| MD5 |
MD5 titkosítású jelszavak. |
Ha ezt kiválasztottuk, akkor máris felsorolhatjuk az érvényes felhasználói neveket és a hozzájuk tartozó jelszavakat, melyek egy-egy user bejegyzésben kaphatnak helyet:
<authentication mode="Forms" >
<forms loginUrl="Login.aspx" protection="All">
<credentials passwordFormat="SHA1">
<user name="software" password="2DBC2FD2358E1EA1B7A6BC08EA647B9A337AC92D"/>
</credentials>
</forms>
</authentication>
A mellékelt példa jelenleg csak a „software” bejelentkező nevet és az „online” jelszót fogadja el.
Joggal felmerül a kérdés, hogy miből következik az, hogy az „online” jelszót titkosítva, 2DBC2FD2358E1EA1B7A6BC08EA647B9A337AC92D-nek kell írni? A jelszavak titkosításához is kapunk segítséget, mivel nyilván fejből ennek meghatározására senki nem lenne képes. Adott a FormsAuthentication osztály, melynek van egy HashPasswordForStoringInConfigFile nevű függvénye, mely segíthet bennünket ebben a feladatban.

HashPasswordForStoringInConfigFile
Osztály: FormsAuthentication
public static string HashPasswordForStoringInConfigFile(
string password,
string passwordFormat
);
A HashPasswordForStoringInConfigFile függvény segítségével kódolhatunk szöveget SHA1, vagy MD5 titkosítással.
Paraméterek
string password
A kódolandó szöveg.
string passwordFormat
A titkosítás módja, mely sha1, vagy md5 lehet.
Visszatérési érték
A kódolt szöveget kapjuk vissza sztringként.
Példa
private void Button1_Click(object sender, System.EventArgs e)
{
Label1.Text=FormsAuthentication.HashPasswordForStoringInConfigFile(TextBox1.Text, "sha1");
}