web.config でロールの動詞を指定しました。これは正常に機能し、ロールがページ Test.aspx に投稿しようとすると、ロール オブザーバーはログイン ページにリダイレクトされます。例:
<location path="Test1.aspx">
<system.web>
<authorization>
<allow roles="Administrator" />
<allow roles="Observer" verbs="GET" />
<deny users="*"/>
</authorization>
</system.web>
</location>
<location path="Test2.aspx">
<system.web>
<authorization>
<allow roles="Administrator" />
<allow roles="Observer" />
<deny users="*"/>
</authorization>
</system.web>
</location>
ただし、Test.aspx ページで POST を実行しようとすると、ユーザーが少し混乱します。実際に何かをクリックする前に、投稿が許可されていないことをユーザーに通知したい. このようなもの:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If *Not User.Role("Observer").Verbs("Post").Allowed* then
uiSave.enabled = false
End if
End Sub
問題は、この情報にどこからアクセスできるかということです。