1

眼镜:

发生了什么?

我有一个站点:http : //www.mysite.com,在那个站点上我设置了 YAF,当用户访问http://www.mysite.com/forum时,他们会被带到论坛。

我想要什么?

当用户登录我的网站时,我想为他们创建一个 cookie,以便当用户访问http://www.mysite.com/forum时,他们会自动登录到论坛。

我做了什么?

当用户在我的网站上注册时,会为他们创建一个 YAF 帐户(工作正常)。当用户登录我的网站时,我对他们进行身份验证并创建一个 cookie,但我还想为论坛创建一个 cookie,以便用户不必单独登录论坛。

要为我正在执行此操作的用户创建 cookie(以便 YAF 检测到它们已登录):

    FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1, userName, DateTime.Now, DateTime.Now.AddMinutes(30), true, "");
    var encryptedTicket = CookieHelper.EncryptTicket(ticket);
    var cookie = CookieHelper.CreateCookie(encryptedTicket, ".YAFNET_Authentication");
    cookie.Path = "/";
    cookie.HttpOnly = true;
    CookieHelper.AddCookie(cookie);

当我访问http://www.mysite.com/forum时,我希望现在能够通过身份验证

有人有智慧的话吗?

- 富有的

4

1 回答 1

2

没关系...

这是解决方案:

在两个 web.config 中添加了一个具有相同值的部分。这允许主网站为 YAF 网站可以解密的登录创建加密会话密钥。把它放在这个部分。将密钥更改为您自己的随机 48 位十六进制字符值(我使用 RoboForm 生成密钥)。

<machineKey validationKey="DBAEF98E532D4161826F8351C794DFD27C0F814262FD6986"
decryptionKey="DBAEF98E532D4161826F8351C794DFD27C0F814262FD6986"
validation="SHA1" decryption="AES" />

在这里找到答案:登录 YAF 用户

希望有一天它可以帮助别人。

于 2013-07-29T20:10:01.890 回答