如何解决在 Angular + WebAPI 应用程序中管理会话
我正在创建一个在 angular 和 web api 上运行的应用程序。实际上要求是使用web api而不是rest api。我们需要在 web api 中管理会话。
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 举报,一经查实,本站将立刻删除。