2012-07-02 67 views
1

我想阻止訪問所有非註冊用戶標籤,<授權>在ASP.net

那麼,難道不下面的工作?

<authorization> 
     <deny users="?" /> 
</authorization> 

但是,我見過很多用戶在使用<allow>標籤以及與否認,標籤。爲什麼我們需要寫<allow>,因爲我們只是拒絕不需要的用戶?

+2

這個問題是關於什麼的? C#是一種語言,因此沒有與之相關的「標籤,如果你的問題是關於ASP.NET的配置,請正確標記。 –

+0

是的,抱歉,只是編輯它 – Akash

回答

2

它不會傷害有一個允許元素。但它不會改變任何事情。

從MSDN:

ASP.NET的默認配置包含一個 元素,它授權的所有用戶。 (默認情況下,此規則最後應用 。)如果沒有其他授權規則匹配,則允許請求。 如果找到匹配項且匹配項是拒絕元素,則請求是 與401 HTTP狀態碼一起返回。如果允許元素匹配,則模塊允許該請求被進一步處理。

編輯:在下面回答你的問題。你可能想要的是:

<authorization> 
     <allow role="Admin"/> 
     <deny users="*" /> 
</authorization> 

換句話說。允許管理員但拒絕其他人。

+0

ok。我希望只允許訪問「管理員」角色而不是「用戶」角色,添加會正常工作,對吧? – Akash

+0

請參閱我的更新回答。 – aquinas

1

這是他們的組合,你可以在你的一次性使用。明確地發出您的授權是一個很好的做法,因此您可以覆蓋您的基地。例如,您可以指定拒絕所有未經授權的用戶,然後說允許所有其他用戶或子集。這個命令就像提到的aquinas一樣重要。

不知道該如何應對你的問題,關於允許一個角色而不是其他管理員用戶VS:

確定。另外,如果我希望只允許訪問「管理員」角色,而不是「用戶」角色,那麼添加會很好,對不對?

這會工作,但不會如您所料。這會拒絕所有的「用戶」角色,但是允許其他任何角色。因此,要解決這個問題,您需要添加指定了Admin角色的allow標籤。

+0

謝謝........ ........... – Akash