ASP.Net跨站点身份验证

时间:2010-12-02 20:55:50

标签: asp.net forms-authentication

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

我被问到如何在domain2.com上开发登录页面,将用户登录到domain1.com并将其重定向到domain1.com主页(domain2.com没有会员系统,纯粹是替代页面从...登录到domain1.com。

这是开箱即用的,还是我需要在domain1.com上开发一个页面来验证来自domain2.com的登录请求?

2 个答案:

答案 0 :(得分:2)

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

引用w3schools

  

行动的可能值   属性是:

     
      
  • 绝对网址 - 指向其他网站(如   行动= “http://www.example.com/example.htm”)
  •   
  • 相对网址 - 指向网站内的文件(例如   行动= “example.htm”)
  •   

<强>更新 我想你只想对domain1的页面进行身份验证。虽然您从domain2发送凭据,但您正在发布数据并被重定向到domain1。因此,auth cookie仅对此类域(domain1)有效。

答案 1 :(得分:2)

这可以通过将此添加到system.web节点内的两个站点的web.config来完成。

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

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

您需要生成私有验证和解密密钥。此Microsoft页面解释了http://support.microsoft.com/kb/312906

的方式