与windows服务共享asp.net mvc会话

时间:2013-12-01 18:15:55

标签: c# asp.net-mvc asp.net-mvc-4 service websocket

我正在开发一个使用ASP.Net MVC 4(.Net 4.5)和自托管websockets的应用程序。对于用户处理和登录过程,我使用默认的asp.net mvc formauthentication系统。

有没有人知道如何在IIS(ASP.Net MVC)和Windows服务之间共享登录会话?

谢谢!

1 个答案:

答案 0 :(得分:1)

如果您有多个应用程序都要求同一用户登录,那么您需要实现一个名为Single Sign-On(SSO)的安全模式。

这要求您有一个集中的地方进行身份验证,并且该地点称为安全令牌服务(STS)或身份提供商(IdP)。

当用户尝试访问您的MVC应用程序或您的websocket端点时,应用程序中的身份验证逻辑必须将其重定向到STS。然后,STS将需要凭据,并根据它们发出安全令牌。然后,客户端将返回已导致重定向并随身携带令牌的应用程序。然后,该令牌可用于您领域中的任何其他应用程序,只要它有效(未过期),安全会话就会在所有应用程序上有效/共享。

我建议您阅读有关Windows Identity Foundation(WIF)4.5和SSO模式的内容,因为上面提到的一些内容与WIF开箱即用。