ASP.Net跨站点身份验证

ASP.Net跨站点身份验证,asp.net,forms-authentication,Asp.net,Forms Authentication,我在domain1.com上有一个使用表单身份验证的网站 有人问我如何在domain2.com上开发一个登录页面,将用户登录到domain1.com并将其重定向到domain1.com主页(domain2.com没有会员系统,只是登录domain1.com的一个替代页面) 这是否可能是现成的,或者我需要在domain1.com上开发一个页面来验证来自domain2.com的登录请求?是的,您可以重复使用验证页面。在domain2.com中创建一个表单,指向domain1.com中的身份验证uri

我在domain1.com上有一个使用表单身份验证的网站

有人问我如何在domain2.com上开发一个登录页面,将用户登录到domain1.com并将其重定向到domain1.com主页(domain2.com没有会员系统,只是登录domain1.com的一个替代页面)


这是否可能是现成的,或者我需要在domain1.com上开发一个页面来验证来自domain2.com的登录请求?

是的,您可以重复使用验证页面。在domain2.com中创建一个表单,指向domain1.com中的身份验证uri

引用:

行动的可能价值 属性包括:

  • 绝对URL-指向另一个网站(如 行动=”http://www.example.com/example.htm))
  • 相对URL-指向网站中的文件(如 action=“example.htm”)
更新:
我假设您只想获得domain1页面的身份验证。虽然您从域2发送凭据,但您正在发布数据并被重定向到域1。因此,身份验证cookie仅对此类域(domain1)有效。

可以通过将其添加到system.web节点内两个站点的web.config中来完成此操作

 <machineKey validationKey="21F090935F6E49C2C797F69BBAAD8402ABD2EE0B667A8B44EA7DD4374267A75D7AD972A119482D15A4127461DB1DC347C1A63AE5F1CCFAACFF1B72A7F0A281B"
        decryptionKey="261F793EB53B761503AC445E0CA28DA44AA9B3CF06263B77"
        validation="SHA1"/>

这将允许应用程序通过客户端机器上的cookie共享身份验证数据


您需要生成一个私有验证和解密密钥。此Microsoft页面解释了我如何在web.config中使用与domain1.com中相同的表单身份验证设置设置domain2.com。在当地似乎效果不错。但是,在不同域上设置cookie是否会有问题?@user528573:是的,在不同域上设置cookie会有问题。出于安全原因,它不会工作。请参阅我关于如何解决此问题的答案。您确定Cookie将在不同的根级别域之间共享吗?根据,无法在domain2.com上读取domain1.com上设置的cookie。您是如何在domain2.com中设置表单身份验证设置的?通过您的问题,我了解到“domain2.com没有会员系统,只是登录domain1.com的一个替代页面”。