使用Web服务从DB加载用户信息

时间:2015-12-29 06:32:43

标签: c# asp.net ajax web-services cookies

我正在创建一个ASP.net网站,其中数据来自数据库。 但是,该网站不直接访问数据库,而是通过Web服务。

数据流:

  

DB>>网络服务>>网站

日志记录和用户信息检索工作正常。

使用FormsAuthentication.RedirectFromLoginPage登录用户后,用户可以访问受限制的页面,并且可以使用http上下文中的User.Identity.Name访问用户名。

问题是当我重新启动应用程序时,我猜用户名已保存在cookie中,我已经登录了。 这没关系,但我只有用户名,而不是我从一开始就需要的完整用户信息。

登录后,我创建了一个包含所有信息的对象,通过Web服务从数据库获取数据。

有没有办法使用网络服务从数据库中检索相同的信息,但是在加载时?

我的想法是将用户ID和身份验证令牌保存在cookie中并调用Web服务并重新创建用户信息对象。

有更好的方法吗?

我已经使用Session_Start甚至Application_BeginRequest尝试了该解决方案,但由于调用Web服务是异步的,我收到错误。

说到异步, 如何确保在加载母版页之前重新创建用户信息? (我需要用户信息,以便我可以知道页面上显示的内容)。

我希望很清楚。如果没有,请告诉我。

谢谢,

1 个答案:

答案 0 :(得分:0)

当然,在花了一整天的工作并最终向你寻求建议之后,我找到了一种方法让它发挥作用。

我正在重定向到将检查cookie并获取用户信息的登录页面,因为它已经没有在缓存中。

如果数据库无法提供,则会显示登录页面。

我不确定这是最好的方式,所以我会等你的回复; - )