我有两个网站使用一个服务(WCF)。用户的身份验证是在访问一个站点的服务中完成的。如何使此身份验证访问两个站点?我可以在服务(WCF)中存储cookie并访问两个站点吗?
我该怎么做呢?
谢谢。
这相当简单。调用FormsAuthentication后。SetAuthCookie。cookie被创建/加密并提供给用户。如果另一个网站为了验证目的而使用该cookie,
- 必须使用相同的cookie名称/域名
- 可以被解密,
- 并且仍然有效。
要做到这一点,你只需要确保每个应用程序的web配置中的密钥和名称相同:例如:http://msdn.microsoft.com/en-us/library/vstudio/eb0zx8fc(v=vs.100).aspx
<configuration>
<system.web>
<authentication mode="Forms" >
<!-- The name, protection, and path attributes must match
exactly in each Web.config file. -->
<forms loginUrl="login.aspx"
name=".ASPXFORMSAUTH"
protection="All"
path="/"
domain="contoso.com"
timeout="30" />
</authentication>
<!-- Validation and decryption keys must exactly match and cannot
be set to "AutoGenerate". The validation and decryption
algorithms must also be the same. -->
<machineKey
validationKey="C50B3C89CB21F4F1422FF158A5B42D0E8DB8CB5CDA1742572A487D9401E3400267682B202B746511891C1BAF47F8D25C07F6C39A104696DB51F17C529AD3CABE"
decryptionKey="8A9BE8FD67AF6979E7D20198CFEA50DD3D3799C77AF2B72F"
validation="SHA1" />
</system.web>
</configuration>