[英]Authentication In MVC & WebAPI Website
我有一个使用简单表单身份验证的网站,用于通过数据库验证凭据。 一切正常。 在web.config中的 <system.web>
中,我具有:
<authentication mode="Forms">
<forms loginUrl="~/Account/Login" timeout="2880" />
</authentication>
现在,我需要向站点添加一个小型WebApi控制器,以便应用程序从中提取对象列表。 就WebApi身份验证而言,基本身份验证似乎很好。 我将在应用程序中拥有用户凭据,该凭据可以轻松地传递到请求标头中。
我的问题是区分MVC和WebApi身份验证。 首先,我的解决方案是一个好主意并且容易实现吗? 当前,在我的WebApiConfig.cs
我有:
GlobalConfiguration.Configuration.MessageHandlers.Add(new BasicAuthenticationHandler(new AuthenticationService()));
然后BasicAuthenticationHandler
在标题中查找凭据。 但是,使用MVC表单身份验证,我根本无法到达该区域。 当我在提琴手中操作时,可以看到它将我直接重定向到“ MVC帐户/登录”页面。 如何避免WebAPI调用的重定向?
感谢您的指导。
好吧,看来这是一个简单的修复。 我上面的web.config代码后的直线如下所示:
<authentication mode="Forms">
<forms loginUrl="~/Account/Login" timeout="2880" />
</authentication>
<authorization>
<deny users="?" />
</authorization>
而且看起来authorization
元素完全覆盖了我拥有的所有[AllowAnonymous]
-匿名访问的唯一可能方法是登录页面。 删除这三行代码可以完全解决我的问题-我现在在WebAPI页面上使用[AllowAnonymous]
属性,它可以正确应用基本身份验证。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.