我们正在构建ASP.NET MVC应用程序,用于管理运动对象预订(网球场,壁球场等)。
在与app互动时,用户不应仅在一个俱乐部的范围内行事。
导航到应用应该像: appname.com/clubName或 clubName.appname.com
问题: 1.保留所选俱乐部数据的最佳方式是什么?我们已经实现了会话存储(注入有关俱乐部durint应用程序开放的信息),但我们读到使用会话是相当弃用的解决方案。我们正在使用ApiController,因此为了获得会话,我们必须破解路由(注册自定义RouteHandler)。会话机制是否适用于此问题?
var session = HttpContext.Current.Session;
if (session != null)
{
service.ClubName = session[CustomSessionKeys.ClubName.ToString()].ToString();
}
非常感谢提前:)
答案 0 :(得分:0)
通常,网络API与普通的mvc应用程序的工作方式不同。
在MVC应用程序中,您将使用会话cookie使互联网充当状态机。但是,这不是通常用于web api的操作。在web api中,您提供某种形式的身份验证(例如,通过标头身份验证字段)。
但在请求中,您当前想要跟踪当前用户,或者以asp.net术语,跟踪当前的主体。
我们通过委托处理程序
HttpContext.Current.User = user;
如果您想了解更多关于如何完成整个身份验证的代码,请告诉我们。
这是所有服务器端,在客户端,您可以在会话存储中保留所需的任何信息。虽然您可能想要考虑使用本地存储(取决于您想要给它的语义)。它们都以相同的方式工作。 您可以查阅W3C webstorage specification以获取有关这两者的完整信息。
答案 1 :(得分:0)
我猜你有很多选择!