替换 ASP.NET 中的默认身份验证模块

发布于 2024-10-21 08:05:27 字数 762 浏览 0 评论 0原文

假设我已经编写了自己的身份验证模块来实现 IHttpModule。虽然还没有真正完成,但有很好的资源,所以我可以弄清楚。

还有有关如何将自定义创建的模块添加到 Web.config 的教程。但是我如何替换某些默认模块?那就是如何从执行路径中删除默认身份验证模块?

我可以从 Web.config 中删除以下行吗?

<authentication mode="Forms">
    <forms loginUrl="~/Account/LogOn" timeout="2880"/>
</authentication>

如果我删除它们,默认的身份验证模块仍然有效吗?

当然,即使我不使用该模块,也没有真正需要删除它......但它会节省一些处理器时间,我会感觉更好。

这很简单,而不是困难的部分:我可以替换 HttpContext 实现吗?我有自己的会话类,名为 Session,但我不希望 HttpSessionState 位于 HttpContext 中。我还想替换 HttpContextUser 属性。所以我想我需要创建自己的 HttpContext 实现并强制我的应用程序以某种方式使用它。 我该怎么做?

请随意回答我的问题的任何部分或全部。

Suppose I've written my own authentication module implementing IHttpModule. It is not really done but there are good resources so I can figure it out.

There are also tutorials on how to add custom created module to Web.config. But how can I replace some default module ? That is how do I remove default authentication module from execution path ?

Can I just remove following lines from Web.config?

<authentication mode="Forms">
    <forms loginUrl="~/Account/LogOn" timeout="2880"/>
</authentication>

If I remove them will the default authentication module still work ?

Of cause there is no real need to remove that module even if I don't use it... But it'll save some processor time and I'll feel better.

That was easy, not the hard part: can I replace HttpContext implementation? I have my own session class called Session and I don't want that HttpSessionState to be in HttpContext. I'd also like to replace User property of HttpContext. So I guess I need to create my own implementation of HttpContext and force my aplication to use it somehow.
How do I do it ?

Please feel free to answer any part of my question alone or all of them as you prefer.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

压抑⊿情绪 2024-10-28 08:05:27
<system.webServer> 
<modules> 
  <remove name="FormsAuthenticationModule" />    
  <remove name="UrlAuthorization" />    
  <remove name="DefaultAuthentication" />    
</modules> 
</system.webServer> 

这个怎么样?

<system.webServer> 
<modules> 
  <remove name="FormsAuthenticationModule" />    
  <remove name="UrlAuthorization" />    
  <remove name="DefaultAuthentication" />    
</modules> 
</system.webServer> 

How about this?

羁客 2024-10-28 08:05:27

您可以将模式设置为。我会将您的 HttpContext 命名为不同的名称。

You can set mode to None. I would name your HttpContext something different.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文