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