在不使用表单身份验证的 ASP.NET 应用程序中保护 ELMAH
我有一个非常基本的 asp.net 应用程序,它依赖于母版页的 INIT 事件来通过会话对象验证用户。 是的,我知道这不是最理想的。
我想向其中添加 ELMAH,但在不使用表单身份验证和 web.config 允许/拒绝设置的情况下找不到任何有关保护控制台的参考。
是否有另一种方法来保护不依赖于表单身份验证的 elmah.axd 文件?
I have a very basic asp.net application that relies on a master page's INIT event to verify the user via a session object. Yes, I know this is way-suboptimal.
I'd like to add ELMAH to it, but can't find any references to securing the console without using forms authentication and a web.config allow/deny setting.
Is there another way to secure the elmah.axd file that doesn't rely on forms authentication?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
本文介绍如何将 Elmah 错误处理程序包装在另一个允许访问会话状态的事件处理程序中:
http://groups.google.com/group/elmah/msg/a0aa776d348ba97e
在 Global.asax 中,您可能会得到类似以下内容:
标准 Elmah 处理程序不实现 IRequiresSessionState 或 IReadOnlySessionState,因此您必须创建另一个事件处理程序来包装它,如上面提到的链接中所述。 否则,您将无法访问 Application_PreRequestHandlerExecute 事件中的会话。
This article describes how to wrap the Elmah error handler in another event handler that allows access to session state:
http://groups.google.com/group/elmah/msg/a0aa776d348ba97e
In Global.asax, you could then have something like the following:
The standard Elmah handler doesn't implement IRequiresSessionState or IReadOnlySessionState, so you'll have to create another event handler to wrap this, as described in the link mentioned above. Otherwise, you won't be able to access the session in the Application_PreRequestHandlerExecute event.
我是 ELMAH MySQL 支持的开发人员之一。 允许/拒绝选项不是特定于 Web 表单的。 他们可以与任何提供商合作。
在您的 global.asax 或您自己的 IHttpHandler 中的 Request_Authentication 上,您需要创建 IPrincipal 对象并将其设置为 Context.User 对象。 像这样的事情:
然后,当为您的 elmah.axd 处理程序检查角色时,它将违背此自定义对象而不是 Web 表单。
I am one of the developers for ELMAH's MySQL support. The allow/deny options are not web form specific. They can work with any provider.
On the Request_Authentication in your global.asax or your own IHttpHandler you would need to create and set the IPrincipal object to the Context.User object. Something like this:
Then when the roles are checked for your elmah.axd handler it would go against this custom object instead of the web forms.
开箱即用,远程访问被禁用,因此您只能从本地计算机访问错误日志。 这里还有更多:
http://code.google.com/p/elmah/wiki/SecuringErrorLogPages
Out of the box, remote access is disabled so you can only access the error logs from the local machine. There's more here:
http://code.google.com/p/elmah/wiki/SecuringErrorLogPages