我有一个域http://abc.com
和一个子域http://sub.abc.com
。我正在通过共享表单身份验证cookie在两个站点之间实施单点登录。这是通过让两个站点在machineKey中共享validationKey和decryptionKey来实现的。表单身份验证ReturnUrl和子域用于单一登录
当用户点击子域中的页面时,我希望用户在根域中进行身份验证并将其重定向回子域。用户目前被重定向到登录页面,但ReturnUrl想要重定向到根站点。
例如,目前:http://abc.com/login.aspx?ReturnUrl=%2fsecure%2fdefault.aspx
,但我想:http://abc.com/login.aspx?ReturnUrl=http:%2f%2fsub.abc.com%2fsecure%2fdefault.aspx
如何才能实现这一目标?
在我的子域的web.config我可以这样来配置目前AUTH:
<authentication mode="Forms">
<forms name=".ASPNET" loginUrl="http://abc.com/login.aspx" protection="All" timeout="1440" path="/" domain="abc.com" enableCrossAppRedirects="true" />
</authentication>
如果你想让abc.com的cookies可以被sub.abc.com访问,我相信你需要将域设置为“.abc.com”而不是“abc.com”。不知道关于returnurl的事情。您可能必须通过检查UrlReferer手动执行此操作。 – 2011-02-11 17:38:20
你不需要像域名* .abc.com这样的通配符吗? – Gallen 2011-02-11 17:42:44
@Daniel Schaffer,我需要在两个站点的配置中设置“.abc.com”吗?或者只是子域的? – LordHits 2011-02-11 17:43:25