检测Active Directory域

时间:2012-11-28 20:09:43

标签: asp.net-mvc-3 active-directory

我试图找出是否可以检测用户是否从某个域(网络域而非网站域)访问该网站,例如businessname.local域上的计算机。

我目前正在为网站实施Forms身份验证,非常适合。我正在为公司实施Intranet网站。

这将是与主站点完全独立的项目。我的目标是检测用户计算机是否在域上并向他们提供访问Intranet的选项,如果他们希望这样做,那么我会重定向用户。

这可能吗?

编辑:

只是为了澄清。我不是要求为Intranet站点实现Active-Directory身份验证(我知道如何执行此操作)。我只是想知道我是否存在检测域的方法,并提供重定向,如果它适用于给定用户。

2 个答案:

答案 0 :(得分:0)

检测用户是否在域内也不错。使用以下代码行:

HttpContext.User.Identity.Name

从那里,你会得到这样的东西:domain \ username。只需操纵字符串即可查看域名,并从那里提供重定向。放在Controller中很容易,比如在索引页面等等。

答案 1 :(得分:0)

我提出的解决问题的解决方案是在Intranet站点上创建一个Controller,它仅用于返回truefalse,具体取决于Active Directory身份验证机器访问它。

预期的结果只是显示重定向的选项...不显示实际内容所以我不相信这会打开任何安全问题(如果我错了请纠正我)。

$(document).ready(function () {
    $.get('URL-to-test-controller', function (data) {
        if ($.trim(data) === "true") {
            if (askAboutRedirect()) {
                window.location = "intranetaddress";
            }
        }
    });
});

由于跨域问题,提供结果的Controller设置了Access-Control-Allow-Origin标题...

Response.AddHeader("Access-Control-Allow-Origin", "requesting server");

根据W3.org