0

我正在使用在以前版本的 IIS 中工作的模块。

http://www.velocityreviews.com/forums/t94333-re-how-do-i-create-a-httpmodule-to-authenticate-in-aspnet.html

由于集成框架,它不再工作,我无法将其改回经典。

客户需要尝试访问该网站,如果他们是有权访问该网站的 Windows 或域用户,根据我们的数据库,他们将自动登录。如果没有,他们将被带到登录页面。

整个站点运行在每次调用动态生成的 default.aspx 页面上,因此我们不能有单独的登录页面。

有谁知道在 IIS 7/7.5 中实现此功能的模块或方法?

编辑:下面是模块生成的 javascript。好像我总是跳到我返回的位置 location.replace("/default.aspx?abortScreening=true");

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Loading ...</title>
</head>
<body>
<script type="text/javascript" language="javascript">
    function canAuthenticate() 
    { 
        try 
        {
        alert("Try canAuthenticate");
            var dom = new ActiveXObject("Msxml2.DOMDocument.4.0");
            dom.async = false;
            dom.load("CredentialsScreeningRequiresAuthentication.aspx?ReturnUrl=");
        }
        catch(e)
        {
            return false;
        }
    return true;
    }
    if (document.cookie.length != 0)
    {
        if (canAuthenticate())
        {
            location.reload();
        }
        else 
        { 
            location.replace("/default.aspx");
        }
    }
    else
    {
        location.replace("/default.aspx?abortScreening=true");
    }
</script>
<noscript>
"Your browser does not support JavaScript or has scripting disabled, which prevents credentials screening from working."
 Please click <a href="/default.aspx?abortScreening=true">here</a> to go to the requested page without authentication.
</noscript>
</body></html>
4

1 回答 1

0

如果不使用单独的登录页面,这根本无法完成。如果可以的话,那里会有解决方案,正如您可能通过谷歌搜索找到的那样,找不到任何解决方案。

你有三个选择。返回经典模式,使用单独的登录页面,或者不使用此功能。

于 2013-03-19T21:49:50.790 回答