2

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

問題は、この情報にどこからアクセスできるかということです。

4

1 に答える 1

0

使用する:

if(User.IsInRole("Observer")){
 //code here
}

例はこちら

オブザーバー ロールのユーザーは Post 動詞を使用する権限がないことが既にわかっているため、動詞を確認する必要はありません。

于 2012-01-12T08:40:22.487 に答える