如何将FormsAuthentication.SetAuthCookie从数据访问层类传递到WebService到Javascript?

时间:2010-01-29 06:08:38

标签: asp.net javascript cookies web-services forms-authentication

我在ASP.Net网站上使用DotNetOpenAuth。我已经修改它以使用Facebook Connect,使用相同的方法和数据库结构。现在我遇到了一个问题。

我已将Facebook Connect按钮添加到登录页面。从那个HTML按钮,我必须以某种方式从Facebook Connect连接中提取信息并将其传递给一个方法来验证用户。我目前正在这样做的方式是:

  1. 在FBML / HTML Facebook Connect按钮的onlogin函数上调用Javascript函数。
  2. javascript函数调用Web服务进行登录,这是正确的。
  3. Web服务调用我的数据访问层进行登录。
  4. 问题在于:FormsAuthentication.SetAuthCookie是在数据访问层设置的。 Cookie超出了用户页面的范围,因此未在浏览器中设置。
  5. 这意味着用户已通过身份验证,但从未通知用户的浏览器。

    所以,我需要弄清楚这是不是做我需要的坏方法,或者是否有更好的方法来完成我需要的东西。我只是不确定并且一直试图找到几个小时的答案。你有任何帮助都会很棒。

1 个答案:

答案 0 :(得分:0)

是的,听起来你是因为试图在同一时间/在一个地方做太多而引发设计危机。

如果您将此操作分解为来自客户端的两个调用,您会发现您的选项开放了很多。它可能需要更多的工作,但最终代码将不那么复杂。 < - 一件好事。

在我看来,指向设计危机的第一条线索就是当我对自己说“自我,有一种认证方法埋没在我的DAL深处的两个电话是不按照我想要的方式工作...... “哈哈......我同时也在开玩笑。

祝你好运。