2014-05-22 155 views
0

我有一個WCF Web服務使用等的操作:傳遞用戶憑據到WCF服務

public void CreateWorkItem(string title, NetworkCredential credential) 
{ 
    // Call a method that requires credential to work. 
    // I want to use the credential of the user not the server's. 
} 

但使用NetworkCredential爲參數是不允許的。

如何將客戶端的本地憑證傳遞給Web服務以便使用它們?

回答

0

傳遞用戶憑證作爲參數的要點是什麼?我想你可以用ServiceSecurityContext得到它,其中:

表示遠程方的安全上下文。在客戶端上,代表服務標識和上的服務,代表客戶標識

例如,

// Write the primary identity and Windows identity. The primary identity is derived from 
    // the credentials used to authenticate the user. The Windows identity may be a null string. 
    sw.WriteLine("PrimaryIdentity: {0}", ServiceSecurityContext.Current.PrimaryIdentity.Name); 
    sw.WriteLine("WindowsIdentity: {0}", ServiceSecurityContext.Current.WindowsIdentity.Name); 
+0

事實上,我需要在我的代碼中使用NetworkCredential。但我不知道如何從WindowsIdentity或PrimaryIdentity中獲得它。 – mehrandvd

相關問題