2011-01-09 57 views
10

我想裝飾的某些業務合同與屬性授權通過自定義邏輯,這樣的來電:WCF是否具有MVC的[Authorize]屬性的等價物?

[ServiceBehavior] 
public class Service1 
{ 
    [OperationContract] 
    [Authorize] // ?? this should make sure only admins can call this method 
    public List<SampleItem> GetCollection() 
    { 
     return new List<SampleItem>() { new SampleItem("Only Admins see me") }; 
    } 
} 

的[授權]應該檢查是否調用者有權調用此操作;如果沒有 - 它應該返回一個錯誤錯誤。

謝謝。

回答

20

不是開箱即用 - 但WCF頂級專家JuvalLöwy在MSDN雜誌上有一篇關於Declarative WCF Security的非常有趣的文章,它向着同一個方向發展。

Juval確定了幾個關鍵安全方案,並將它們中的每一個都包裝到WCF服務行爲中,以作爲服務器端服務類中的屬性應用。確實有趣的讀物!

+1

這不僅是一個很好的答案,但你如此接近100K,你應得的給予好評。搖滾! – 2011-01-10 00:01:12

3

WCF沒有用於此目的的任何特殊屬性,但是您可以使用PrincipalPermissionAttribute - .NET中用於聲明性基於角色的安全性的常用方法。

相關問題