繁体   English   中英

使用Web服务从数据库加载用户信息

[英]Loading user info from DB with web service

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

数据流:

DB >> Web服务>>网站

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

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

问题是当我重新启动应用程序时,我猜用户名已保存在cookie中,并且我已经登录。可以,但是我只有用户名,而不是从头开始需要的完整用户信息。

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

有没有一种方法可以使用Web服务从数据库检索相同的信息,但是要在加载时进行?

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

有没有更好的办法?

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

说到异步, 如何确保在加载母版页之前重新创建了用户信息? (我需要用户信息,这样我才能知道在页面上显示或不显示什么)。

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

谢谢,

当然,在花费了一整天的时间并最终向您寻求建议之后,我找到了一种使之起作用的方法。

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

如果数据库中没有它,它将显示登录页面。

我不确定这是最好的方法,所以我将等待您的答复;-)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM