[英]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.