我正在开发一个使用ASP.Net MVC 4(.Net 4.5)和自托管websockets的应用程序。对于用户处理和登录过程,我使用默认的asp.net mvc formauthentication系统。
有没有人知道如何在IIS(ASP.Net MVC)和Windows服务之间共享登录会话?
谢谢!
答案 0 :(得分:1)
如果您有多个应用程序都要求同一用户登录,那么您需要实现一个名为Single Sign-On(SSO)的安全模式。
这要求您有一个集中的地方进行身份验证,并且该地点称为安全令牌服务(STS)或身份提供商(IdP)。
当用户尝试访问您的MVC应用程序或您的websocket端点时,应用程序中的身份验证逻辑必须将其重定向到STS。然后,STS将需要凭据,并根据它们发出安全令牌。然后,客户端将返回已导致重定向并随身携带令牌的应用程序。然后,该令牌可用于您领域中的任何其他应用程序,只要它有效(未过期),安全会话就会在所有应用程序上有效/共享。
我建议您阅读有关Windows Identity Foundation(WIF)4.5和SSO模式的内容,因为上面提到的一些内容与WIF开箱即用。