我有一个 ASP.NET 站点,需要登录才能访问该站点的其余部分。登录信息存储在数据库中并通过服务访问。
该企业要求能够从外部站点登录。我在我的项目中添加了一个通用处理程序 (.ashx),它接受用户名和密码输入,验证凭据,然后如果它们有效,则使用 IRequiredSessionState 接口将凭据存储在会话中。然后它将应用程序入口点的 URL 提供给客户端。
客户端(使用 jquery 到 .post() 的普通旧 HTML 页面)然后获取响应并重定向到此 URL。
好吧,这似乎工作得很好,正是我所需要的。我想我可以避免生成一个令牌并通过这样做在查询字符串中传递它,因为处理程序和站点都共享同一个会话。但是现在的问题是,当我尝试通过将登录 HTML 页面放在同事计算机上(例如,在我的应用程序中托管外部)进行测试时 - 它不起作用。会话在 ASHX 处理程序中正确添加,但在入口点的 Page_Load 中,该会话值消失了。
有可能做我正在做的事情吗?为什么会话会像这样立即忘记?我认为这与从登录页面登录并从那里重定向相同(它是相同的应用程序和相同的会话..)
谢谢!