Изглежда, че Forms Authentication може да се справи с това, от което се нуждаете. Добавете следния ред към вашия root web.config
<authentication mode="Forms">
<forms name="XXXXX.ASPXAUTH" timeout="60" loginUrl="~/login.aspx" protection="All" path="/"></forms>
</authentication>
Заменете XXX с това, което искате да наречете вашата бисквитка. Също така преименувайте login.aspx на това, което сте нарекли страницата си за вход. Този код ще пренасочи всеки, който не е удостоверен, към страницата за вход.
След това в логиката си за влизане използвайте нещо като следния C# код
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1, txtUsername.Text,
DateTime.Now, DateTime.Now.AddMinutes(60), true, reader["user_level"] + "",
FormsAuthentication.FormsCookiePath);
string hash = FormsAuthentication.Encrypt(ticket);
HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, hash);
if (ticket.IsPersistent) cookie.Expires = ticket.Expiration;
Response.Cookies.Add(cookie);
С този код ще искате да изпратите потребителското ниво на лицето, което влиза (т.е. администратор, потребител и т.н.), където имам "четец[..."
Последното нещо, което трябва да направите, е да настроите всяка защитена директория със собствен web.config, който очертава потребителските роли, които са разрешени и ролите, които са отказани. Имената, които използвате за ролите в web.config, трябва да съответстват на стойностите, които се изпращат във FormsAuthenticationTicket и ще сте готови.
person
Justin C
schedule
29.09.2010