2013-10-30 467 views
0

我正在使用WCF Web服務,我需要使用基於HTTPS的基本身份驗證,並且應該針對LDAP進行安全和身份驗證驗證。身份驗證請求事件處理程序 - 自定義身份驗證IIS

public class BasicAuthenticationModule: IHttpModule 
{ 
public void Init(HttpApplication context) 
{ 
    context.AuthenticateRequest 
     += new EventHandler(context_AuthenticateRequest); 
} 
    void context_AuthenticateRequest(object sender, EventArgs e) 
    { 
    } 
} 

我用Code from this link建設上面說part.hooked的AUTHENTICATE_REQUEST事件來處理我的服務所需的身份驗證。

我遇到以下問題: 當我在瀏覽器中打開服務時,在輸入憑證之前,它會輸入驗證請求事件處理程序,並且由於授權標頭不可用,它會要求輸入憑據。 但是,在我輸入證書後,它並沒有進入AUTHENTICATE REQUEST事件處理程序,但是這次授權標頭可用,但無法對其進行身份驗證,因此我無法訪問WCF服務,並且它沒有被授權。

請讓我知道如何讓每個請求都被調用Authenticate請求?

我對這個問題很無奈。

回答

0

您需要確保IIS中的所有其他身份驗證模塊都已禁用;可能的例外是匿名認證模塊。後者似乎是在某些情況下需要的,而不是在其他情況下。我一直無法找出造成這種差異的原因。如果您禁用所有身份驗證模塊(您的例外)並且您看到服務器返回401.2狀態,那麼您將需要啓用匿名身份驗證。

+0

嗨@Terry Coatta感謝您的回覆。這個要求已經改變了,我們不需要使用LDAP,我們可以通過HTTPS和Active Directory身份驗證使用基本身份驗證。所以我不需要實現自定義認證模塊! –