2
我在爲.net 4.0中的asmx實現自定義基本身份驗證時遇到了一個小問題。 我創建這將啓動Web服務消費者運行過程中出現這個代碼的認證過程中的HttpModule,Web服務的自定義基本身份驗證
HttpApplication application = (source as HttpApplication);
HttpContext context = application.Context;
if (VirtualPathUtility.GetFileName(context.Request.FilePath).Contains("svcEWS.asmx"))
{
string username = "", password = "";
string authHeader = HttpContext.Current.Request.Headers["Authorization"];
if (!string.IsNullOrEmpty(authHeader) && authHeader.StartsWith("Basic"))
{
//Authenticate here
}
}
但是沒有認證頭現在每當達到該代碼。 消費的web應用程序簡單地調用,
EWS.svcEWS svcEWS = new EWS.svcEWS();
svcEWS.Credentials = new NetworkCredential("admin", "admin", "example.com");
svcEWS.HelloWorld();
IIS設置爲以匿名身份驗證匿名身份驗證運行,以防止它捕獲任何身份驗證請求。
有什麼我不知道有客戶端通過正確的頭到我的模塊?
微軟已經提供了一種自定義Web服務認證的方法。它被稱爲WCF! ASMX不打算用這種方式進行定製。不要浪費你的時間重新發明輪子。 –
我同意,但在我的特殊情況下,我模仿了一個預先存在的web服務,並且無法控制使用它的客戶端。 – Bryan
解決。問題是我忘記響應失敗的身份驗證請求401強制標題。 – Bryan