YAF - 从主页面验证用户

时间:2013-07-29 20:04:16

标签: c# asp.net-mvc-4 yaf

功能

发生了什么事?

我有一个网站: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

时进行身份验证

有人有任何智慧的话语吗?

- 丰富的

1 个答案:

答案 0 :(得分:2)

...没关系

以下是解决方案:

  

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

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

在此处找到答案:Log in YAF user

希望有一天能帮助别人。