如何在一个站点上验证用户身份并将凭据传递给其他站点? (Windows身份验证,ASP.Net)

时间:2009-01-01 14:08:18

标签: asp.net windows-authentication

我们有多个运行Windows身份验证的Web应用程序。
用户使用Domain \ Username登录网站,这与他们在本地计算机上使用的DomainOther \ UsernameOther不同。
考虑到我们有2个站点One.xyz.com和Two.xyz.com都运行Windows身份验证(并且用户使用Domain \ Username登录到两者),是否可以将用户从One.xyz.com上的页面重定向到Two.xyz.com的主页,一旦他已经在One.xyz.com上输入,就不再输入他的凭证? 是否可以使用ASP.Net执行此操作?

亲切的问候,

2 个答案:

答案 0 :(得分:3)

您正在寻找的是单点登录,并且有各种各样的商业产品能够满足您的需求。其中许多通过HTTPS通过服务器变量传递凭据,以便用户不会在URL中看到凭据。我曾与想要“自己动手”的公司合作,并且采用其他方法(会话密钥引用第三台服务器,加密和时间敏感的URL字符串等)。

要开始使用,您需要在单点登录时阅读Wikipedia entry(它也与SAML链接)。您可能还想访问一些较受欢迎的商业供应商的网站,例如PasslogixImprivata(尽管如此,有几十个网站,所以不要将此列表视为详尽无遗,甚至特别推荐 - 很受欢迎)。

答案 1 :(得分:1)

SharePoint支持SPNEGO身份验证,这是一种单点登录形式。 MSDN有关于使用SPNEGO进行单点登录.net的文档。查看Microsoft Security SSPI。我发现this sample有一个快速搜索。

SPNEGO是Microsoft Kerberos的变体,它也将与IBM产品和Oracle WebLogic互操作。

如果您希望使用比Kerberos具有更广泛互操作性的国际标准进行单点登录,则应使用SAML。有关SAML的Microsoft讨论,请参阅Active Directory Fedration。但是,SAML的实现和配置要复杂得多。