【发布时间】:2011-03-18 06:10:43
【问题描述】:
我需要这样做的原因是因为 Facebook 连接 - 这是另一个故事,所以我会为你节省剧情。 =)
无论如何,我有这个在 window.onload 上运行的函数:
function userAuth() {
SomeFunctionWhichGetsFacebookCookes();
if (!loggedInUsingFormsAuth && loggedInViaFacebook) {
window.location.reload(); // refresh page, so i can perform auto-login
}
}
所以,我需要帮助来获取“loggedInUsingFormsAuth”标志。
我不关心cookie中的内容,只需要知道当前用户是否经过身份验证。
我为什么要这样做?
好吧,在窗口加载时,如果用户登录 Facebook 但未登录我的网站(根据表单身份验证 cookie),我想重新加载页面 - 这允许我的 ASP.NET 网站读取 Facebook cookie HttpContext 并让用户登录。我需要在 JavaScript 中执行此操作,因为在我调用“SomeFunctionWhichGetsFacebookCookies”之前我没有 Facebook cookie - 这只能在 JavaScript 中完成。
那么,我如何判断当前用户是否通过 JavaScript 进行了身份验证?我是否必须手动遍历 cookie,找到我想要的并检查它?这样做安全吗?
或者我是否应该使用 RegisterClientScript 将标志从服务器写入客户端?
【问题讨论】:
-
最终将 HttpContext.Current.Request.IsAuthenticated 属性注册到客户端以供 JavaScript 使用。更容易。
标签: javascript asp.net cookies forms-authentication