ServiceStack V4 MVC认证和使用JS客户端

时间:2014-05-23 12:58:20

标签: asp.net-mvc-4 authentication servicestack

我通过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路由获取信息

我在这里缺少什么?

1 个答案:

答案 0 :(得分:0)

我明白了。事实证明,我成功登录后创建的一个函数可以将一些额外的数据保存到会话中,这会破坏会话数据,使我无法通过http请求与API正常通信。