微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 Angular + WebAPI 应用程序中管理会话

如何解决在 Angular + WebAPI 应用程序中管理会话

我正在创建一个在 angular 和 web api 上运行的应用程序。实际上要求是使用web api而不是rest api。我们需要在 web api 中管理会话。

为此,我在我的 WebAPI 应用程序中添加了以下代码

public class SessionHttpControllerRouteHandler : HttpControllerRouteHandler
    {
        protected override IHttpHandler GetHttpHandler(RequestContext requestContext)
        {
            return new SessionControllerHandler(requestContext.RouteData);
        }
    }

public class SessionControllerHandler : HttpControllerHandler,IRequiresSessionState
    {
        public SessionControllerHandler(RouteData routeData)
            : base(routeData)
        {
        }
    }

routes.MapHttpRoute(
                name: "DefaultApi",routeTemplate: "api/{controller}/{action}/{id}",defaults: new { id = RouteParameter.Optional }
            ).RouteHandler = new SessionHttpControllerRouteHandler();

例如,有两个 API 调用。 1 个是登录,另一个搜索调用

在第一次调用中,我将 UserID 添加到 session { HttpContext.Current.Session.Add(key,value);在搜索调用中,我试图检索登录 API 调用时保存在会话中的值 { HttpContext 上下文 = HttpContext.Current; 返回 context.Session[key]; }

我尝试从 Postman 调用 API,一切正常,它正在维护会话。但是当我尝试通过 Web 浏览器从 angular 调用 API 时,会话根本没有检索。 设置值后,在尝试检索相同的值时,http.context.current.session 始终为空。

然后我查了postman,知道有一个cookie,postman自动创建和维护的,就是ASP/Net_SessionId。如果我删除了 cookie,则会话值不会保持不变。

那么,请您帮助我如何在使用 angular 作为前端时维护 web api 中的会话值。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。