2012-02-01 188 views
4

有一个ASMX:ASMX asp.net web服务返回401错误未经授权

[WebService] 
[ScriptService] 
public class MyService : WebService { 
    [WebMethod] 
    public OperationResult Validate(string str) { } 
} 

有一个HTTPS://.../a.aspx,在这个页面,我称之为webserivce通过jQuery AJAX:

$.ajax({ 
    url: '/Services/MyService.asmx/Validate', 
    type: 'POST', 
    contentType: 'application/json; charset=utf-8', 
    data: data, 
    success: function (data, textStatus, xhr) { 
     // xxx 
    } 
}); 

注意a.aspx使用HTTPS。 ajax请求会得到401未经授权的响应。 如果a.aspx不使用HTTPS,则它可以工作。

我正在使用名为“WebPageSecurity”的库,如果我使用它,401错误将会发生。如果我不使用它,那就是直接在浏览器中输入https://.../a.aspx,那么它就会起作用。 所以我想在WebPageSecurity中的问题,我该如何解决它?谢谢。

回答

2

最终,我找到了解决办法:忽略的web.config中WebPageSecurity配置中的* .asmx文件:

<secureWebPages mode="On" ignoreHandlers="WithStandardExtensions" encryptedUri="xxx"> 
    <files> 
     <add path="path/to/MyService.asmx/MyMethod" secure="Ignore" /> 
    </files> 
    </secureWebPages> 
+1

我知道这不是最近的,但确实这会引起其他安全问题? – Alex 2013-09-04 09:15:17

相关问题