2012-04-09 68 views
3

我有一个有两个应用程序的解决方案。是否有可能让用户只登录一次?在多个ASP MVC 3应用程序中单点登录

例如,在主应用程序我做认证是这样的:

FormsAuthentication.SetAuthCookie(ContactFound.ContaLogin, model.RememberMe); 

我把这个代码在web.config文件:

<authentication mode="Forms"> 
    <forms 
    loginUrl="~/Account/LogIn" 
    defaultUrl="~/Account/LogOn" 
    timeout="15" 
    />  
</authentication> 

我要补充,这样,当用户已登录,在主应用程序中,我们不要求他在连接到第二个应用程序时再次登录?

+0

都是应用程序将被托管在同一个服务器/域上? – hangy 2012-04-09 12:50:41

+0

是的,他们将被托管在同一台服务器上,但是有区别吗? – kbaccouche 2012-04-09 12:51:53

+1

Yup - 跨域会困难得多,因为cookie不能用于不同的域。你的情况应该是相当简单的,因为你没有这个问题。 (见http://stackoverflow.com/a/10073566/11963) – hangy 2012-04-09 13:01:23

回答

5

既然你要举办在同一地址两个应用程序,它应该由<machineKey>(web.config中)设置为两个应用程序相同的值很容易成为可能。之后,您应该在登录另一个应用程序后自动登录到一个应用程序。

延伸阅读: