Asp.net web api 如何在Web Api项目中保护Elmah.axd
我正在使用这个Elmah包记录WebAPI项目中未处理的异常Asp.net web api 如何在Web Api项目中保护Elmah.axd,asp.net-web-api,elmah,Asp.net Web Api,Elmah,我正在使用这个Elmah包记录WebAPI项目中未处理的异常 该软件包与Web API配合得非常好,它能够成功地将所有未处理的异常记录到Elmah中,但不必担心如何保护Elmah.axd。我使用Asp.Net身份令牌承载身份验证进行API调用,因此默认安全机制在我的情况下无效。在我的情况下,我想只允许具有管理员角色的用户使用此功能。请建议我已经找到了两种解决token问题的方法,但这两种方法在某些方面都有缺陷,但都是可用的: Elmah.mvc允许您决定要使用的url,因此,如果您通过禁用对/
该软件包与Web API配合得非常好,它能够成功地将所有未处理的异常记录到Elmah中,但不必担心如何保护Elmah.axd。我使用Asp.Net身份令牌承载身份验证进行API调用,因此默认安全机制在我的情况下无效。在我的情况下,我想只允许具有管理员角色的用户使用此功能。请建议我已经找到了两种解决token问题的方法,但这两种方法在某些方面都有缺陷,但都是可用的:
然后,通过提供更安全/随机的url,您可以成为唯一能够访问它的人。这种方法存在一些安全缺陷,因为它依赖于秘密url,但许多网站在向您发送只有您可以用于登录的url等时确实使用了这种方法。有关这种方法的安全性以及含义的更多信息,请访问security.stackexchange.com
函数elmah(){
角度元素(document.body)
.注入器()
.get(“$http”)
.get(“\elmah”)
.成功(功能(响应)
{
var elmahWindow=window.open(“”);
elmahWindow.document.write(响应);
});
};
然后,如果在控制台中键入elmah(),将打开一个新窗口。这种方法似乎足够安全(除非您更改方法以接受一些参数,这些参数可能会在xss或其他文件中被滥用),但问题是您只能在elmah中看到原始视图,单击所有URL将失败。它可以以各种方式扩展,但我看不到一种简单方便的方法来修复它