2012-01-12 45 views
2

我已經爲web.config中的角色指定了動詞。這可以正常工作,如果角色試圖在頁面Test.aspx中發佈,角色觀察者將被重定向到登錄頁面。例如:表單身份驗證。獲取web.config中指定角色的允許動詞

<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 

所以,問題是:我在哪裏可以獲得這些信息?

回答

0

用途:

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

Example here

你不會需要檢查動詞,因爲你已經知道,在觀察角色的用戶沒有權限usethe郵政動詞

+0

啊,但我會擁有完全訪問某些頁面的角色,並且只能訪問某些頁面。 – user1145002 2012-01-12 09:14:02

+0

更新到原來的問題來解釋更好 – user1145002 2012-01-12 09:29:08

+0

嗯,OOB我不認爲有一種方法。你可能不得不在自己的邏輯上編寫自己的邏輯。 – robasta 2012-01-13 12:44:41