Q1. Причина, по которой собственный UrlAuthorizationModule не понимает роли, связана с тем, что информация о ролях хранится в управляемом объекте, реализующем интерфейс IPrincipal , которому не принадлежат собственные модули не имеет доступа к.
A) Но если собственный UrlAuthorizationModule понимает билет проверки подлинности и, следовательно, может работать в сочетании с FormsAuthenticationModule , то почему он не может работать и с модулем ролей?
А именно, не содержит ли этот билет информацию о ролях, в которых участвует пользователь? Если это так, то UrlAuthorizationModule может получить всю информацию о ролях из заявки и, следовательно, не должен иметь доступа к IPrincipal объекту?!
Q2
Следующая статья http://www.asp.net/learn/security/tutorial-11-vb.aspx претензий:
Если анонимный пользователь посещает сайт, ни FormsAuthenticationModule , ни RoleManagerModule не создают основной объект.
A) Если приведенное выше утверждение верно, то следующий код не вызовет исключения, поскольку свойство User будет содержать нулевую ссылку:
if (User.Identity.IsAuthenticated)
Label1.Text = "user is authenticated";
else Label1.Text = "user is not authenticated";
Label1 отображает « Пользователь не аутентифицирован », что предполагает, что свойству User назначен объект, реализующий IPrincipal , даже если пользователь не авторизован ?!
Thanx