Я не думаю, что вы можете сделать это через текущие настройки, разрешенные в web.config. Хотя вы могли бы сделать что-то вроде следующего ... в качестве самой первой строки в вашем Page_Load
событии для рассматриваемой страницы, используйте следующий код (VB):
If Not (User.IsInRole("Role1") AndAlso User.IsInRole("Role2")) Then _
FormsAuthentication.RedirectToLoginPage()
Эта строка, конечно, предполагает, что вы используете FormsAuthentication. В противном случае вам нужно будет заменить FormsAuthentication.RedirectToLoginPage()
на соответствующий код в зависимости от метода аутентификации.
Я точно не знаю вашу ситуацию, но исходя из вашего кода, похоже, что вы могли бы пойти еще дальше и добавить таблицу с отображением пользователей на сайты и сделать что-то вроде следующего:
В публичном модуле добавьте следующий код:
<System.Runtime.CompilerServices.Extension()> _
Public Function ManagesSite(target As System.Security.Principal.IPrincipal, siteName As String) As Boolean
Return [ code here to look up whether this user can access the site specified ]
End Function
Тогда вы можете написать предыдущий код как нечто более логичное, например:
If Not (User.IsInRole("SiteManager") AndAlso User.ManagesSite(Request.Url.Host)) Then _
FormsAuthentication.RedirectToLoginPage()