Ваши участники могут войти в систему и получить доступ к содержимому участника, но затем перенаправляются, когда они пытаются что-то получить в разделе администратора. Это работает по дизайну. Участник не получит сообщение об ошибке при входе в систему, потому что он не смог войти в систему, а ему будет отказано в доступе.
Во всем приложении вы можете проверить, как человек пытается перейти на страницу, к которой у него нет доступа, и запустить сообщение, что у него нет доступа, но это дополнительная работа, но выполнимая.
Вы также можете изменить свое приложение таким образом, чтобы ссылки на определенные разделы сайта отображались только в том случае, если пользователь находится в нужной роли. Например, Roles.IsUserInRole ("role") проверит имя пользователя, выполнившего вход, в данный момент / пользователь находится в роли. В 2.0 есть также элемент управления LoginView, в который вы можете обернуть элементы управления, которые делают это для вас.
РЕДАКТИРОВАТЬ: Уточнение на основе вашего первого комментария.
Так устроен поставщик ролей. Он перенаправляет вас на страницу входа, когда вы пытаетесь получить доступ к странице, для которой вам было отказано в web.config.
Вы могли бы сделать пару вещей:
Удалите операторы deny для групп в web.config, а затем выполните одно из двух или оба:
Используйте элемент управления loginview и инкапсулируйте функциональность для роли «admin» в представлении администратора, а затем отобразите сообщение для роли «member», к которому у них нет доступа.
И / или написать код в событии загрузки страницы для страницы, которая проверяет роли и представляет сообщение и / или перенаправляет пользователя на другую страницу.
ИЛИ оставьте оператор deny в web.config для групп И
на странице загрузки события страницы входа в систему сделать что-то вроде
If Me.User.Identity IsNot Nothing and Me.User.Identity.Isauthenticated Then
If Me.User.IsInRole("admin") Then
Response.Redirect("~NoAccessToMemberStuff.htm")
Else If Me.User.IsInRole("member") Then
Response.Redirect("~/NoAccessToAdminStuff.htm")
End If
End If