我有一个MVC 4.5应用程序,用于提供网站内容 - 我使用它进行捆绑和路由,非常基本。
在结帐页面上是一个使用knockoutjs的多步骤表单。
然后我有一个单独的网络服务,通过来自knockoutjs结帐提交的AJAX接受订单。
网站在不同的服务器上运行(https://www.myapp.com和https://api.myapp.com)。
这个想法是使用从api获取的令牌并在api通信期间使用。
对于网站的其他部分,有一个CAPTCHA类型字段的提交,
从代码here开始,会话与context.HttpContext.Session["captchastring"] = randomString;
一起使用。同样,我需要存储用户会话的计算值,以便我可以识别单个结账并在提交时验证CAPTCHA(以及其他内容)。
由于我们无法在两个不同的Web服务器进程之间共享此上下文,我想我们可以从MVC Web服务器双重调度,要求API获取会话令牌,然后使用此内置的令牌呈现视图但这感觉很笨重。
我有两个问题:
我是否会犯这个错误,或者我咬紧牙关并放一些 应用程序的一部分在同一个MVC应用程序中的WebAPI中 会议可以分享吗?
存在哪些其他身份验证方案对此有用 以上?
答案 0 :(得分:0)
您可以制作另一个用于身份验证的API项目。所以mvc项目和api项目将使用第三个api进行身份验证。
但是由于您具有基于令牌的身份验证,该令牌将保存到db nad中,我认为两个项目都使用相同的数据库,因此您可以轻松地声明令牌。最好将toke放入请求标题中。