从主Web应用程序自动登录到另一个ASP.NET应用程序

时间:2010-02-02 15:34:24

标签: asp.net authentication forms-authentication yetanotherforum

我在主WebApplication下面的文件夹中运行最新版本的YetAnotherForum。子文件夹在IIS中配置为应用程序并导航到该文件夹​​并且登录工作非常好。 YAF是使用会员提供商设置的,并使用表单身份验证。

我现在要做的是从主网站自动登录用户进入论坛。主网站通过会话和cookie使用自定义身份验证。它不使用任何内置的ASP.NET身份验证或成员资格组件。

所以基本上我想要发生的是当用户点击链接访问论坛时,他们会被发送到一个处理页面,在将它们发送到子文件夹之前将它们验证到YAF应用程序中。

即使主应用程序不使用内置的身份验证部分,我仍然将身份验证模式设置为表单,并确保下面的标记与YAF web.config中的标记匹配。然后,在处理页面上我调用FormsAuthentication.SetAuthCookie(用户名,true),然后重定向。但是YAF无论如何都会把我踢回登录页面。不知道从哪里开始。

主要网站是: example.com /

的web.config:

<authentication mode="Forms">
  <forms name=".YAFNET_Authentication" protection="All" timeout="43200" cookieless="UseCookies" />
</authentication>

YAF是: example.com/yaf(在IIS中分离WebApplication)

的web.config

<authentication mode="Forms">
  <forms name=".YAFNET_Authentication" protection="All" timeout="43200" cookieless="UseCookies" />
</authentication>

处理页面是:(伪) example.com/autoLogin.aspx.cs

public void AutLogin(){
    string userName = doStuffToGetUsername();
    YAFStuff.CreateUserIfNeeeded(userName);

    FormsAuthentication.SetAuthCookie(userName, true);
    Response.Redirect("/yaf/");
}

1 个答案:

答案 0 :(得分:0)

我一直在谷歌搜索2天试图解决这个问题,但我最终偶然发现了解决方案。我需要一个与两个web.config文件匹配的MachineKey用于加密过程。

http://forum.yetanotherforum.net/yaf_postst8780_Custom-membership-and-role-provider-with-YAF-Profile-provider.aspx

甜!