Windows 身份验证提示两次
Windows Authentication prompting twice
我在两个不同的网站上使用 Windows 身份验证,在同一台服务器上,具有相同的域后缀。两者都使用带有两个证书的 https。问题是当外部用户访问这两个站点时,系统会提示他们输入两次凭据,即使凭据完全相同。
我试过在两个站点上禁用匿名身份验证。外部用户不会使用连接到域的机器,所以我无法将站点添加到任何类型的 Intranet 区域。
我是否可以更改任何内容以允许每个站点接受来自相关站点的身份验证 cookie?
对我有帮助的是确保 NTLM 是 windows 身份验证的首选提供程序(请参阅 IIS 管理器 -> 站点 -> 身份验证 -> 提供程序)。
默认设置是先协商,这对我们不起作用。
此外,两个站点需要位于同一 Internet 区域。
你的情况,你可以试试How can I share a session across multiple subdomains in ASP.NET? and Sharing ASP.NET Web Application's Session State and How to share session state across subdomains
但我认为 "Token Based Authentication" 更适合你。你可以试试JWT(JSON Web Token),它是跨域的,但是你得写一些代码。
JWT
您也可以尝试 AOuth2,对于这种情况来说它太重了。此外,您还必须编写一些代码。
OAuth2
我在两个不同的网站上使用 Windows 身份验证,在同一台服务器上,具有相同的域后缀。两者都使用带有两个证书的 https。问题是当外部用户访问这两个站点时,系统会提示他们输入两次凭据,即使凭据完全相同。
我试过在两个站点上禁用匿名身份验证。外部用户不会使用连接到域的机器,所以我无法将站点添加到任何类型的 Intranet 区域。
我是否可以更改任何内容以允许每个站点接受来自相关站点的身份验证 cookie?
对我有帮助的是确保 NTLM 是 windows 身份验证的首选提供程序(请参阅 IIS 管理器 -> 站点 -> 身份验证 -> 提供程序)。
默认设置是先协商,这对我们不起作用。
此外,两个站点需要位于同一 Internet 区域。
你的情况,你可以试试How can I share a session across multiple subdomains in ASP.NET? and Sharing ASP.NET Web Application's Session State and How to share session state across subdomains
但我认为 "Token Based Authentication" 更适合你。你可以试试JWT(JSON Web Token),它是跨域的,但是你得写一些代码。 JWT
您也可以尝试 AOuth2,对于这种情况来说它太重了。此外,您还必须编写一些代码。 OAuth2