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 回答