我在 ASP.NET MVC 3 中构建 Web 门户,它使用远程 Web 服务作为与数据库通信的唯一方式。Web 服务要求始终在请求标头中传递用户名/密码,否则它会拒绝调用。
我已经重写了 ASP.NET 成员资格,以便我的 ValidateUser 方法将用户名/密码发送到 Web 服务登录方法,如果身份验证成功则返回 true/false。它与 MVC 3 Empty Internet 模板提供的 AcountController 配合使用非常好。由于我必须在每个 Web 服务调用中传递用户名/密码,因此我将它们保存在 Session 中。
我的问题是:
如果我关闭浏览器并重新打开它...我仍然登录到网站,但我的 Session 变量已过期,因此我对 Web 服务的请求都没有被接受,即使我仍然使用凭据登录。
我正在寻找如何将用户登录状态与会话状态同步的好建议。要么让它们都保持不变,直到使用注销,要么让它们都在浏览器关闭时处理。
感谢所有建议:)