Asp.net mvc 同时使用OWIN OAuth中间件和system.web授权
我有一个现有的MVC 5应用程序,它对控制器操作使用Active Directory和NTLM身份验证/授权。我通过在项目根web.config文件中使用类似于此的内容来实现这一点。正如我所期望的那样Asp.net mvc 同时使用OWIN OAuth中间件和system.web授权,asp.net-mvc,asp.net-web-api,oauth,owin,ntlm,Asp.net Mvc,Asp.net Web Api,Oauth,Owin,Ntlm,我有一个现有的MVC 5应用程序,它对控制器操作使用Active Directory和NTLM身份验证/授权。我通过在项目根web.config文件中使用类似于此的内容来实现这一点。正如我所期望的那样 <system.web> <compilation debug="true" targetFramework="4.5.1" /> <httpRuntime targetFramework="4.5.1" /> <authentication mode=
<system.web>
<compilation debug="true" targetFramework="4.5.1" />
<httpRuntime targetFramework="4.5.1" />
<authentication mode="Windows" />
<authorization>
<allow roles="MyDomain\MyAuthorizedGroup" />
<allow users="*" />
</authorization>
<roleManager enabled="true" defaultProvider="AD">
<providers>
<clear />
<add name="AD" type="System.Web.Security.WindowsTokenRoleProvider" />
</providers>
</roleManager>
现在,在同一个项目中,我正在用WebAPI编写一个RESTful服务。WebAPI端点将通过OAuth令牌和Owin中间件在代码中受到保护。特别是Microsoft.Owin.Security.OAuth提供的类。我已经重写了OAuthAuthorizationServerProvider类以公开令牌生成端点,并且我已经向我的WebAPI端点添加了[Authorization(Roles=“…”]属性以验证令牌中的角色。所有这些都可以工作,但仅当我禁用现有NTLM身份验证时
这是一个我还没有解决的问题。我需要为新的WebAPI端点支持OAuth,为现有的MVC5控制器操作支持NTLM,也为一些新的MVC5控制器操作支持OAuth,这些操作服务于将与WebAPI端点通信的网页
我已经将API控制器和MVC控制器分离到项目/磁盘上的单独文件夹中。下面是我尝试的内容(很抱歉,缺少实际的配置元素;出于某种原因,因此没有呈现它们)