2012-11-26 88 views
0

我使用自定義身份驗證實現了WCF服務,當我將用戶名和密碼的常量字符串傳遞給UsernameAuthentication類,驗證方法並在那裏驗證時,它工作正常。但有沒有一種方法可以傳遞動態用戶名,密碼並驗證它們。我怎樣才能實現這個,並在這個類中訪問這些值。WCF使用動態用戶名和密碼的自定義身份驗證

class UsernameAuthentication : UserNamePasswordValidator 
    {   
     public override void Validate(string userName, string password) 
     {    
      var ok = (userName == "DynamicUserName") && (password == "DynamicPassWord"); 
      if (ok == false) 
       throw new AuthenticationException("u/p does not match"); 
     } 
    } 

回答

0

裏面的Validate方法,你將要查詢自己的用戶數據庫,並檢查用戶名和密碼是有效的。通常您將使用RDBMS或存儲所有用戶數據的XML文件。

查看ASP.NET's Membership瞭解支持基於角色的安全性的數據庫模式示例。更好的是,您可以將ASP.NET的Membership與WCF集成。 Hva看看這個article的「控制訪問和使用公共Web託管服務」。您還可以閱讀Resnick,Crane和Bowen關於Essential WCF的安全性章節,他們在這裏描述了許多支持WCF服務中認證/授權的方式。

+0

我真的不能查詢數據庫。我有一個令牌值,它是爲每個用戶服務的請求創建的。我需要將該令牌傳遞給服務並在調用中對其進行驗證。我正在尋找方法將它發送到服務頭部或緩存它們,如果有人已經實現了這一點。 – user1663996

相關問題