Я подозреваю, что вы заново изобретаете колесо.Вам не нужно использовать схему членства поставщика членства и ASP.Net, чтобы воспользоваться преимуществами аутентификации форм.Когда пользователь входит в систему, просто бросьте на него Auth Ticket (cookie), и все готово.Затем вы можете просто выполнить проверку администратора на странице администратора.
Некоторые предложения ниже ...
Редактировать: Первоначально я опубликовал способ хранения ролей в Auth Ticket через UserData, но я думаю, что в этой ситуации это излишне.
Web.config:
<authentication mode="Forms">
<forms loginUrl="~/Account/LogOn" timeout="30" slidingExpiration="true" />
</authentication>
. . .
<membership>
<providers>
<clear />
</providers>
</membership>
После входа в систему: Когда пользователь отправляет свое имя пользователя и пароль, подтвердите их и проверьте, еслиони администраторы:
if (UserIsValid(username, pwd)) // some validation call
{
FormsAuthentication.SetAuthCookie(username, true);
}
Admin.aspx: Наконец, быстрый взлом, чтобы ограничить доступ к странице администратора.Когда страница загрузится, убедитесь, что пользователь является / не является администратором:
if (!IsAdmin(User.Identity.Name)) // some admin call
Response.Redirect("Default.aspx");