2013-03-20 53 views
2

我使用自定義的UserNamePasswordValidator在.NET 4上有一個WCF服務,使用SSL和郵件安全進行了保護。在UserNamePasswordValidator中存儲自定義信息

UserNamePasswordValidator接收用戶名和密碼並將其傳遞給存儲過程,該存儲過程返回該用戶名和密碼的有效帳戶令牌。

我的問題是,我不明白如何訪問實際的Web服務中的帳戶令牌。我懷疑我必須能夠將標記添加到標頭的某處,但OperationContext尚不存在於UserNamePasswordValidator中,並且在HttpContext上設置它失敗,並顯示「驗證消息安全性時發生錯誤」。

從我的谷歌搜索看來,我必須實現IAuthorizationPolicy或IIdentity,但這兩個都不能訪問密碼。

我認爲很多服務都會使用用戶名和密碼並使用它來查找相關帳戶。我是在過度複雜嗎,還是我錯過了一些明顯的東西?

回答

1

我結束了檢查OperationContext.Current.ServiceSecurityContext.PrimaryIdentity,看看是否用戶進行身份驗證,然後就取回我從數據庫中需要基於身份的名稱的信息。這似乎工作得很好。