我有3个mvc4网站。 Site 1'www.mydomain.com'是一个允许用户创建帐户的营销网站。
站点2'https://businessnamewhatever.mydoman.com'用于公司登录并使用可用功能。
Site 3 WebApi项目'https://api.mydomain.com'
在营销网站内创建帐户后(通过调用webapi创建帐户)我想将它们重定向到第二个网站,自动将其登录。
这两个站点都有表单身份验证设置,并且都使用在web.config身份验证部分中设置的自己的cookie名称
在调用api后我的营销网站中我需要设置auth cookie,以允许用户自动登录到站点2
我认为这只是在我的营销网站中使用
的情况FormsAuthentication.SetAuthCookie(userName,true,“我在站点2上的cookie的名称”);
我的第二个想法是做一个像
这样的脏重定向 var url = string.Format("https://{0}.mydomain.com/account/sign-in?userName={1}&password={2}", model.BusinessName, model.BusinessName, model.Password);
return Redirect(url);
然而重定向永远不会发生。查看网络选项卡,我可以看到响应,如果点击它,我会被正确地重定向到网站。
有更好的方法吗?
更新
SORRY!我忘了提到我有第三个应用程序作为我的API
我已根据Kenneth的建议更新了所有web.config。使用身份验证设置添加相同的计算机密钥和域名
在我在营销网站中调用创建用户方法后,我应该尝试在那里设置cookie还是应该做其他事情?
答案 0 :(得分:1)
如果两个站点共享一个根域,IE site1.yourdomain.com和site2.yourdomain.com,您应该能够设置机器密钥和共享域,以便允许两个站点访问身份验证票证。
详情请点击此处。 http://msdn.microsoft.com/en-us/library/eb0zx8fc.aspx
答案 1 :(得分:1)
首先,我假设两个产品都在不同的域上(否则你可以参考@Kenneth的答案),你可以对这两个站点的源代码进行更改。
如果发生验证错误(例如超时或无效参数),则业务站点应重定向到营销网站上的预定义URL。