2009-11-12 44 views
0

我们目前正在将一部分Intranet应用程序迁移到MojoPortal(一个开源的cms应用程序)。 MP默认使用FormsAuth,我们已将其设置为对我们当前的Active Directory存储进行身份验证。FormsAuthentication.SetAuthCookie通过服务(或其他远程方式)

所有这一切都表明,我们希望自动将用户从当前系统登录到新系统以创建无缝体验。新系统(mojo)位于与当前系统不同的服务器上。两个都位于同一个“company.com”域中,具有不同的子域。

Mojo,通过在用户通过mojo界面登录时创建的FormsAuthentication cookie来检查身份验证。我们正在寻找远程重新创建此功能。我意识到FormsAuth基于MachineKey并且位于单个IIS Web实例内,但对社区可能拥有的任何想法感到好奇。

我们已经想出了这里的当前“最好”的猜测是:

创建一个生活在魔力网站的虚拟目录下一个WCF Web服务,接受用户名/密码和创建的cookie。这是未经测试的,因为我们不确定这是否会影响客户。

将用户重定向到mojo下面的中间页面,该中间页面接受用户名/密码并创建cookie,然后再将用户重定向到所需的mojo页面。

这确实使用MojoPortal作为提供者,但真正的问题是如何远程创建FormsAuthentication cookie。

其他背景资料:

当前系统已经验证针对相同的广告存储,所以在对于那些不存在的用户创建的cookie无关。两台服务器位于同一个AD域中(它们在物理上彼此相邻)。当前系统的源代码可供我们使用,并且可以进行修改。

回答

0

如果我理解正确,您正试图在您的遗留系统和mojo之间进行单点登录?我过去做过类似的事情。我们的遗留系统创建一个身份验证令牌并将其传递给第二个系统。然后,Web服务调用返回到遗留系统以验证令牌(您将需要添加一些规则来确定令牌的真实性,例如:一次性使用,超时等)。如果遗留系统验证令牌,则设置cookie。

FormsAuthentication.SetAuthCookie(,真)

从那里重定向回你的魔力主页。

相关问题