在ASP.NET中替换defaut authentification模块

时间:2011-03-12 21:37:09

标签: c# .net asp.net asp.net-mvc httpmodule

假设我编写了自己的身份验证模块IHttpModule。它并没有真正完成,但有很好的资源,所以我可以搞清楚。

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

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

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

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

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

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

请随意单独回答我的问题的任何部分或根据您的意愿回答所有问题。

2 个答案:

答案 0 :(得分:2)

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

这个怎么样?

答案 1 :(得分:0)

您可以将mode设置为None。我会将你的HttpContext命名为不同的东西。