在URL级别进行自定义身份验证,使用ISAPI仍然使用.NET还是有新方法?

时间:2009-02-03 19:52:23

标签: iis authentication isapi

是否存在非IIS方式对不使用HTML的用户进行身份验证?

我知道我可以为IIS创建自己的ISAPI过滤器,但我希望使用.NET代码实现相同的功能,而不是将其与IIS集成。

现在是否有办法使用最新的.NET,或ISAPI仍然是要走的路?

2 个答案:

答案 0 :(得分:1)

如果要对所有内容应用自定义身份验证,则IIS 5/6/7需要ISAPI扩展。

Greg的方式仅适用于IIS 5/6上的ASP.NET内容。但是,如果您很好地理解IIS 7的集成管道功能,则可以将像Greg这样的ASP.NET HTTP模块配置为应用于所有内容。

如果进一步搜索,MSDN和IIS.net可以为我提供更多详细信息。

答案 1 :(得分:0)

您可以使用IHttpModule来执行此类操作,例如

public class AuthModule : IHttpModule
{
    public void Init(HttpApplication context)
    {
        context.AuthenticateRequest += OnAuthenticateRequest;
        context.AuthorizeRequest += OnAuthorizeRequest;
    }

    private static void OnAuthenticateRequest(object sender, EventArgs e)
    {
        // authenticate the user here...
        // (note that the sender argument is an HttpApplication instance)
    }

    private static void OnAuthorizeRequest(object sender, EventArgs e)
    {
        // ...then authorize their attempted action here, if needed
    }
}