如何在中等信任环境中连接到当前的 FormsAuthenticationModule?
我的应用程序中有一个 HttpModule,它使用以下代码挂钩到 FormsAuthenticationModule 的 Authenticate 事件:
public void Init(HttpApplication context)
{
FormsAuthenticationModule faModule =
(FormsAuthenticationModule)context.Modules["FormsAuthentication"];
faModule.Authenticate +=
new FormsAuthenticationEventHandler(faModule_Authenticate);
}
不幸的是,对 context.Modules 的调用失败,因为应用程序需要在中等信任环境中运行。 我可以通过其他方式参与此活动吗?
I've got an HttpModule in my application that hooks into the FormsAuthenticationModule's Authenticate event with the following code:
public void Init(HttpApplication context)
{
FormsAuthenticationModule faModule =
(FormsAuthenticationModule)context.Modules["FormsAuthentication"];
faModule.Authenticate +=
new FormsAuthenticationEventHandler(faModule_Authenticate);
}
Unfortunately, the call to context.Modules fails because the app needs to run in a medium-trust environment. Is there another way that I can hook into this event?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这是一项艰巨的任务 - 您甚至无法从全局应用程序文件中访问模块集合。
您可以尝试从全局中的 AuthenticateRequest 处理程序调用自定义代码:
您也无法从集合中获取自定义模块,因此您需要对模块库的静态引用。
除了授予 AspNetHostingPermission(此处详细介绍其他权限 )到你的网站在机器级别的 web.config 中,我没有主意了!
That's a tough one - you can't even access the Modules collection from within your Global application file.
You could try calling your custom code from the AuthenticateRequest handler in Global:
You can't grab your custom module from the collection, either, so you'd need a static reference to your module's library.
Other than granting the AspNetHostingPermission (as detailed for other permissions here) to your site in the machine level web.config, I'm out of ideas!