我们有一个使用AngularJS框架的页面应用程序,需要在不同的域上与在.NET Web中实现的API对话。
问题
该API是在.NET Web中实现的。为了验证用户访问API的权限,我们实现了MVC单页应用程序模板。这使用FormsAuthentication将访问权限授予API。
我们用Fiddler来调试。当我们访问API上需要直接在浏览器中进行身份验证的控制器时,我们可以确认用户确实经过了身份验证。当我们执行XMLHttpRequest时,就像怀疑的那样,没有在标头中发送身份验证cookie。
我们想要完成的是使用FormsAuthentication访问.NET Web,希望通过XMLHttpRequests访问。
对此提出的一种解决方案是在.NET和MVC之间共享会话。我们如何轻松地维护.NET Web和项目的MVC部分之间的状态?
它不是很RESTful,我们知道,但我们需要一个快速解决这个问题。
PS!FormsAuthentication通过使用.NET属性来处理.NET Web控制器。只是控制器不能使用XMLHttpRequests访问。
使用时小提琴的屏幕截图
当请求直接在浏览器中完成时,小提琴的屏幕截图
用于测试的认证控制器的屏幕截图
发布于 2013-09-10 06:16:47
这是一个CORS请求。您可以使用Microsoft.AspNet.WebApi.Cors库。
只需要在webapi config
上添加一行就可以在ASP.NET WEB中使用CORS:
config.EnableCors("*","*","*");
查看此以获取详细信息。
https://stackoverflow.com/questions/15902409
复制相似问题