我正在使用此Elmah软件包在Web Api项目中记录未处理的异常。
https://github.com/rdingwall/elmah-contrib-webapi/issues/18
该软件包适用于Web API,它成功地将所有未处理的异常记录到Elmah,但是很少担心保护Elmah.axd。我使用Asp.Net Identity Token Bearer身份验证进行API调用,因此默认安全机制在我的情况下无效。我知道如何在我的情况下保护,我想仅允许具有管理员角色的用户。请建议
答案 0 :(得分:0)
我已经找到了两种克服令牌问题的方法,但是它们在某些方面都存在缺陷,但可以使用:
<add key="elmah.mvc.route" value="elmah_very_secure_url"/>
然后,通过提供更安全/随机的网址,您可以成为唯一能够访问它的人。这种方法存在一些安全漏洞,因为它依赖于秘密网址,但是许多网站在向您发送只能用于登录等的网址时确实使用此方法。更多信息可以在security.stackexchange上找到.com关于这种方法的安全性以及影响是什么
function elmah(){
angular.element(document.body)
.injector()
.get("$http")
.get("\elmah")
.success(function(response)
{
var elmahWindow = window.open("");
elmahWindow.document.write(response);
});
};
然后,如果在控制台中键入elmah(),则会打开一个新窗口。这种方法看起来足够安全(除非你改变方法接受一些可以在xss或其他东西中滥用的参数),但问题是你只能在elmah中看到原始视图并点击所有网址失败。它可以通过各种方式扩展,但我没有看到一种简单方便的方法来修复它。