Вы можете сделать это, но на самом деле это не лучший способ.
Проблема здесь в том, что appSettings не контролируются схемой Web.Config, поэтому вам нужнопрограммно перечислим appSettings ужасным образом:
if (configurationSettings.HasKey("Role1")) { ... }
else if (configurationSettings.HasKey("Role2")) { ... }
else if (configurationSettings.HasKey("Role3")) { ... }
//continue ad.nauseum; it's not fun - trust me!
Я знаю, что это не то, что вы спрашиваете, но если вы используете обычные веб-формы ASP.Net, то это немного сложная работа;на каждой странице / элементе управления вам нужно найти текущего пользователя, а затем определить, есть ли у этого пользователя доступ, а затем перенаправить или продолжить.
Если вы используете ASP.Net MVC, это намного чище, поскольку вы делаете это сАтрибуты.
Authorize(Roles = "Managers")]
public ActionResult CompanySecrets()
{
return View();
}
То, что делает там код, говорит, что если у пользователя нет роли Менеджеров, не предоставляйте ему доступ.
Чтобы привести противоположный пример,Вот аналогичный метод с использованием веб-формы (пример msdn):
http://support.microsoft.com/kb/311495