繁体   English   中英

当tusers尝试登录到我的asp.net Intranet Web应用程序时,显示“ 401-未经授权:访问被拒绝”

[英]“401 - Unauthorized: Access is denied”, when tusers is trying to login to my asp.net intranet web application

我有以下内容:

  1. 我们的内部网络包含DomainA和DomainB。
  2. 两个域可以相互通信,但是它们之间没有信任关系,并且禁用了ADFS。
  3. 我在domainA的IIS 7.5下部署了一个asp.net mvc Web应用程序。
  4. 我的asp.net mvc的身份验证类型为Windows身份验证

我目前的情况如下:

  1. 在domainA下定义的用户(部署了asp.net MVC的用户)可以使用其用户名和密码(在浏览器弹出窗口中输入)来访问asp.net mvc Web应用程序。
  2. 在domainB下定义的用户在输入域用户名和密码时将得到“ 401-未经授权:访问被拒绝”(在输入401错误之前,他们将输入用户名和密码3次)。

所以我的问题是:

  1. 我不知道web.config文件或insdie IIS内部需要执行哪些步骤,以便允许我的aspnet mvc Intranet Web应用程序对来自两个域的用户进行身份验证。 因此,如果用户输入domainA \\ username,则asp.net应在domainA中的AD中寻找用户,而如果用户输入domainB \\ username,则asp.net应在domainB内寻找用户

您需要在web.config中添加2套<providers> ,每个域1套,如下所示。

为多个域配置ASP.NET成员资格提供程序的步骤

1)在Web.config文件中,添加类似于以下示例中所示的连接字符串,该字符串指向每个域的Active Directory用户数据库。

<connectionStrings>
  <add name="TestDomain1ConnectionString" connectionString="LDAP://testdomain1.test.com/CN=Users,DC=testdomain1,DC=test,DC=com" />
  <add name="TestDomain2ConnectionString" connectionString="LDAP://testdomain2.test.com/CN=Users,DC=testdomain2,DC=test,DC=com" />
.
..
...
</connectionStrings>

2)在Web.config文件中,使用指向每个域的ActiveDirectoryMembershipProvider实例配置<membership>元素,如下所示。

<membership >
  <providers>
    <add
      name="TestDomain1ADMembershipProvider"
      type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=2.0.0.0, 
            Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
      connectionStringName="TestDomain1ConnectionString"
      connectionUsername="testdomain1\administrator" 
      connectionPassword="password"/>
    <add
      name="TestDomain2ADMembershipProvider"
      type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=2.0.0.0, 
            Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
      connectionStringName="TestDomain2ConnectionString"  
      connectionUsername="testdomain2\administrator" 
      connectionPassword="password"/>
  </providers>
</membership>

确保将connectionStringName属性设置为前面在<connectionStrings>部分中指定的正确连接字符串名称。

有关设置并确保其有效的详细演练, 请参见此处。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM