代码之家  ›  专栏  ›  技术社区  ›  Wayne Werner

使用vb.net进行Intranet Active Directory身份验证

  •  0
  • Wayne Werner  · 技术社区  · 14 年前

    我正在开发一个Intranet Web应用程序,我正在学习如何将VB连接到Active Directory中。我们将要做一些特定于位置的权限,我的老板希望(如果可能的话)我连接到Active Directory以获取用户位置。

    我想我只需要得到用户名,但我不确定最好的方法是什么。我们是一家只经营微软的商店,所以IE和IIS是今天的订单。要访问Intranet,您必须使用我们的域登录到计算机,这是一个安全级别,但是我需要进行身份验证,并确保用户具有进行更改的权限。我想我们要么在广告信息中有一个修饰符(如果还没有修饰符的话),要么在数据库中保留一个权限表,但前者可能是首选的。

    我知道IIS有一个允许/需要身份验证的功能,但我不确定它应该如何工作。

    那么,什么是最好/最容易/稍微(大多数?)。获取用户凭据的安全方法?我可以一直做一个登录页面,但如果我能在后台获得他们的广告凭证,那就更好了。

    谢谢!

    2 回复  |  直到 14 年前
        1
  •  2
  •   marc.d    14 年前

    您需要为您的IIS站点禁用匿名身份验证,并启用Windows身份验证。

    现在转到web.config并更改以下内容

    <authentication mode="Windows"> 
    ...
    </authentication>
    

    看见 http://msdn.microsoft.com/en-au/library/532aee0e(v=VS.80).aspx

    &

    如果需要

    <identity impersonate="true" />
    

    看见 http://msdn.microsoft.com/en-us/library/aa292118(VS.71).aspx

    现在您应该能够使用

    HttpContext.Current.User.Identity.Name
    

    要检查用户是否在特定组中,可以使用

    HttpContext.Current.User.IsInRole("YourActiveDirectoryGroup")
    
        2
  •  1
  •   Dan Iveson    14 年前

    可以将IIS配置为使用集成身份验证,这样您就可以访问用户的samaccountname(Windows 2000以前的登录)。通过它,您可以对AD执行LDAP查询并检查组成员身份。如果用户是canModifyTufgGroup的成员(您在AD中创建并将用户添加到),那么让他们进行更改,否则给他们只读版本或其他任何版本。