ASP.NET VB.NET-如何使用IIS7 Active Directory设置单点登录SSO

ASP.NET VB.NET-如何使用IIS7 Active Directory设置单点登录SSO,asp.net,vb.net,iis-7,single-sign-on,Asp.net,Vb.net,Iis 7,Single Sign On,问题:每次我启动Internet Explorer的新会话时,web应用程序都会提示我输入Active Directory用户名和密码,而不是从当前登录的Active Directory配置文件中自动检索该信息 如何在web配置或default.aspx.vb文件代码中设置单点登录,使其不会提示我输入active directory凭据 以下是我的web.config文件中的代码: <authentication mode="Windows"/> <identity i

问题:每次我启动Internet Explorer的新会话时,web应用程序都会提示我输入Active Directory用户名和密码,而不是从当前登录的Active Directory配置文件中自动检索该信息

如何在web配置或default.aspx.vb文件代码中设置单点登录,使其不会提示我输入active directory凭据

以下是我的web.config文件中的代码:

  <authentication mode="Windows"/>
  <identity impersonate="true"/> 

   <authorization>

    <allow users="alg\bmccarthy, alg\phoward" />               
    <allow roles="alg\ACOMP_USER_ADMIN" />
    <allow roles="alg\ACOMP_user_AMG" />
    <allow roles="alg\ACOMP_user_BIG" />
    <allow roles="alg\ACOMP_user_NIS" />
    <allow roles="alg\ACOMP_user_GLA" />
    <allow roles="alg\ACOMP_user_PIP" />
    <allow roles="alg\ACOMP_user_PSM" />
    <allow roles="alg\ACOMP_user_PAM" />
    <allow roles="alg\ACOMP_user_ANN" />
    <allow roles="alg\ACOMP_user_AAM" />
    <allow roles="alg\ACOMP_user_MWM" /> 
    <allow roles="alg\ACOMP_user_GIM" />
    <deny users="*" />      
    </authorization>  

 </system.web>

 <system.webServer>
 <modules runAllManagedModulesForAllRequests="true"/>
 <validation validateIntegratedModeConfiguration="false" />
 <defaultDocument enabled="true">
      <files>
          <clear />
          <add value="Default.aspx" />
      </files>
  </defaultDocument>
  </system.webServer>

  <system.serviceModel>
  <bindings>
  <basicHttpBinding>
    <binding name="BasicHttpBinding_IAcompService1" closeTimeout="00:01:00"
      openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
      allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
      maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
      messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
      useDefaultWebProxy="true">
      <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
        maxBytesPerRead="4096" maxNameTableCharCount="16384" />
      <security mode="TransportCredentialOnly">
        <transport clientCredentialType="Windows" />
        <message clientCredentialType="UserName" algorithmSuite="Default" />
      </security>
    </binding>
    </basicHttpBinding>
    </bindings>
    <client>

    <endpoint address="http://acompwebservice.myagencyservices.com/aCompService.svc" binding="basicHttpBinding"
    bindingConfiguration="BasicHttpBinding_IAcompService1" contract="aComp_ServiceReference.IAcompService"
    name="BasicHttpBinding_IAcompService1" />
    </client>
    </system.serviceModel>
但是我不确定是否应该创建一个登录令牌方法,并且我没有使用数据库进行登录,因为我使用的是带Active Directory的Windows身份验证。是否可以在web.config上添加一些内容来完成此操作


谢谢你的关注

您是否已验证IE中的“启用集成Windows身份验证”选项已启用

在IE9中,转到工具、Internet选项、安全性、自定义级别、用户身份验证、登录

如果您选择了“仅在Intranet区域中自动登录”,但仍然不起作用,则表示该网站未显示为Intranet网站。您可以将网站从显示为internet网站更改为intranet网站,以便自动登录以使用此设置

或者,您可以将登录更改为“使用当前用户名和密码自动登录”,这可能会打开安全漏洞


或者,您可以设置组策略对象,并将该网站添加为可自动验证的受信任网站。

感谢您的回复!在IE9中,在安全、自定义级别、用户身份验证、登录下:我只在Intranet区域自动登录,并将其更改为使用当前用户名和密码自动登录。这确实让我在没有用户名和密码提示的情况下登录了网站。更改此设置是否会导致任何安全问题?您应该恢复该更改,并将自动登录限制为仅限于Intranet区域。完成后,将应用程序的url添加到Intranet区域。这将保留您的安全设置,同时将Intranet区域设置应用于我们的应用程序。我还将研究为什么该服务器未被检测为本地intranet区域的一部分?该站点不作为intranet站点加载,而是作为internet站点加载,这解释了为什么它不自动验证。硬件支持人员说这是因为该网站使用web服务。web server guy会将该站点添加为受信任站点,并为访问acomp邀请的用户组提供集成安全性,这样就不需要通过组策略对象更新手动更改每个用户的设置。@Brian McCarthy让您的IT员工通过GPO将该站点配置为受信任站点是最有效的方法最优解。