Похоже, что проверка подлинности с помощью форм может справиться с тем, что вам нужно. Добавьте следующую строку в корневой файл web.config.
<authentication mode="Forms">
<forms name="XXXXX.ASPXAUTH" timeout="60" loginUrl="~/login.aspx" protection="All" path="/"></forms>
</authentication>
Замените XXX на то, что вы хотите назвать своим файлом cookie. Также переименуйте login.aspx в то, что вы назвали своей страницей входа. Этот код перенаправит любого, кто не прошел аутентификацию, на страницу входа.
Затем в вашей логике входа используйте что-то вроде следующего кода С#
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