【发布时间】:2015-09-07 18:42:16
【问题描述】:
我目前有一个 MVC 应用程序,它使用默认的“个人用户帐户”选项进行身份验证。这很好用,我可以根据用户角色创建用户、登录和限制对控制器的访问。
我有一个单独的 Web API 应用程序,目前不使用任何身份验证。
两个应用程序都托管在同一 IIS 服务器上,作为不同的站点。我想将来自 MVC 应用程序的身份验证结合到 Web API 应用程序中,因此在用户登录到 MVC 应用程序后,他们还可以根据用户角色访问 Web API 应用程序中的相应控制器。
根据我一直在阅读的内容,我需要在两个应用程序中将<authentication mode='Forms'> 设置为web.config,并且由于它们位于同一台服务器上,因此两者之间会自动共享身份验证。我尝试将[Authorize] 添加到 Web API 应用程序的控制器中的方法中,通过 MVC 应用程序登录并尝试访问该方法,但从未输入该方法。
这是我一直在看的:http://www.bipinjoshi.net/articles/436bc727-6de2-4d11-9762-9ee1a1e3cbea.aspx
我在这里缺少什么?我希望有人可以为我指明正确的方向。
【问题讨论】:
-
该链接仅在您将 MVC 和 Web API 托管在同一主机上时才有效。但在你的情况下,它不是。我的建议是您应该使用不记名 Jwt 令牌在您的 Web api 和 mvc 之间进行 单点登录。
标签: c# asp.net-mvc authentication asp.net-web-api2 authorize