我的解决方案结构如下:
当部署到服务器时,Web项目将是根目录,api项目将存在于root\api
中。
我正在使用FormsAuthentication.SetAuthCookie("foo",false);
在网络应用中对用户进行身份验证,因此当然在网络项目的控制器内我回读cookie时没有问题(HttpContext.User.Identity.Name
)
我希望能够在我的API项目中执行相同操作,当从Web项目中的页面发出ajax
请求时,我可以在发送服务之前检查用户是否已经过身份验证。< / p>
这可能吗?
我跟着this MSDN article在应用程序之间创建身份验证,但仍然无法在API上下文中读取我的身份验证cookie。我想知道是不是因为我在本地主机上运行,而网络配置中的Forms
节点需要一个域名:
<forms loginUrl="login.aspx"
name=".ASPXFORMSAUTH"
protection="All"
path="/"
domain="contoso.com"
timeout="30" />
我尝试将域设置为localhost:XXXX
,但这也无效。两个应用程序中的机器键都匹配。