我通过nuget中的MVC Starer包安装了一个新的MVC4项目。我已经通过ORMLite auth提供程序配置了Authentication,MSSQL作为后备存储。
为了确保MVC4项目与SS正确集成,我有followed this guide。我正在使用此处描述的方法来解析AuthenticateService
并发布用户在UI中提供的凭据。成功验证后,我还设置了一个FormsAuthentication
cookie,让MVC知道用户确实已经登录。浏览网站并通过MVC控制器从api中获取内容非常合适,但是,我想利用API直接避免MVC控制器开销。
这里有一个时髦的部分:如果我尝试通过浏览器(或通过jQuery)访问API方法,我只是接收HTTP 302将我发送到/login
,结束于404,因为我有没有这样的页面。
如果我检查通过Chrome Dev-tools发送的cookie,它看起来像这样(+为了简洁而省略了其他一些):
ss-id Ve5wdbKiR5VVlu5uQPjF
ss-opt perm
ss-pid zyvcwXomzufMMfkoEN64
所以似乎auth-details被发送到SS。然后,如果我启动Postman并直接针对API执行身份验证(通过POST /api/auth
),Google Chrome和jQuery可以直接从/api
路由获取信息
我在这里缺少什么?
答案 0 :(得分:0)
我明白了。事实证明,我成功登录后创建的一个函数可以将一些额外的数据保存到会话中,这会破坏会话数据,使我无法通过http请求与API正常通信。