Authentication ASP.NET MVC 5和WEB API使用相同的身份验证

Authentication ASP.NET MVC 5和WEB API使用相同的身份验证,authentication,asp.net-mvc-5,asp.net-web-api2,Authentication,Asp.net Mvc 5,Asp.net Web Api2,我正在使用ASP.NETMVC5和WebAPI模板开发一个网站。我使用此模板的个人帐户功能。然而,WEB API有自己的帐户控制器,并使用它控制身份验证机制。ASP.NET MVC 5也有自己的帐户控制器 如何在同一身份验证机制中使用这两个人员。或者,尽管它们使用不同的accountcontroller,但它们是否处于相同的身份验证中?从您的问题来看,我认为您希望在一个域(例如www.mysite.com)上使用MVC托管您的网站。如果是这种情况,那么您可以在子域(如API.mysite.com

我正在使用ASP.NETMVC5和WebAPI模板开发一个网站。我使用此模板的个人帐户功能。然而,WEB API有自己的帐户控制器,并使用它控制身份验证机制。ASP.NET MVC 5也有自己的帐户控制器


如何在同一身份验证机制中使用这两个人员。或者,尽管它们使用不同的accountcontroller,但它们是否处于相同的身份验证中?

从您的问题来看,我认为您希望在一个域(例如www.mysite.com)上使用MVC托管您的网站。如果是这种情况,那么您可以在子域(如API.mysite.com)中托管Web API项目


由于父域中的身份验证可以传播到子域,因此您可以禁用Web API的身份验证机制,只使用MVC项目的身份验证。至少,当我将论坛项目作为我网站的子域托管时,我是通过两个MVC项目实现这一目标的。

从您的问题来看,我认为您希望在一个域(比如www.mysite.com)上使用MVC托管您的网站。如果是这种情况,那么您可以在子域(如API.mysite.com)中托管Web API项目


由于父域中的身份验证可以传播到子域,因此您可以禁用Web API的身份验证机制,只使用MVC项目的身份验证。至少,当我作为网站的一个子域主持一个论坛项目时,我通过两个MVC项目实现了这一点。

你的问题的答案相当简单。您需要两个帐户控制器,以便调用MVC控制器的客户端(如浏览器)和调用web api控制器的客户端(如ajax请求、fiddler等)可以进行身份验证


如果两个控制器都属于同一个域和应用程序,则默认情况下,它们在幕后使用相同的身份验证机制,即使您仍然可以覆盖此行为。

您的问题的答案相当简单。您需要两个帐户控制器,以便调用MVC控制器的客户端(如浏览器)和调用web api控制器的客户端(如ajax请求、fiddler等)可以进行身份验证


如果两个控制器都是同一域和应用程序的一部分,则默认情况下,它们在幕后使用相同的身份验证机制,即使您仍然可以覆盖此行为。

如果我误解了,请更正,但如果您在Web API中禁用身份验证,人们可以在未经授权的情况下访问您的Web Api方法。很抱歉丢失信息,但我认为OP意味着表单身份验证。因此,在使用表单身份验证时,为父端生成的身份验证cookie也会授予对子域的访问权。当然,WebAPI方法需要身份验证,但用户也不需要对WebAPI进行身份验证。啊,好吧!!感谢您的澄清。如果我误解了,请更正。但是,如果您在Web API中禁用身份验证,人们将能够在未经授权的情况下访问您的Web API方法。很抱歉,缺少信息,但我认为OP意味着表单身份验证。因此,在使用表单身份验证时,为父端生成的身份验证cookie也会授予对子域的访问权。当然,WebAPI方法需要身份验证,但用户也不需要对WebAPI进行身份验证。啊,好吧!!谢谢你的澄清。