C# 如何使用MVC Web API进行身份验证?
我正在尝试为另一个MVC站点访问的MVC Web API配置身份验证。我在web.config中尝试了很多东西,从SO那里得到了很多建议。然而,这一切都无济于事 我正在使用MVC网站上的以下代码:C# 如何使用MVC Web API进行身份验证?,c#,.net,asp.net-mvc,asp.net-web-api,C#,.net,Asp.net Mvc,Asp.net Web Api,我正在尝试为另一个MVC站点访问的MVC Web API配置身份验证。我在web.config中尝试了很多东西,从SO那里得到了很多建议。然而,这一切都无济于事 我正在使用MVC网站上的以下代码: var web = new WebClient(); web.UseDefaultCredentials = false; web.Credentials = new NetworkCredential(username, password); 然后,我使用该web客户端调用另一个只包含API控制器
var web = new WebClient();
web.UseDefaultCredentials = false;
web.Credentials = new NetworkCredential(username, password);
然后,我使用该web客户端调用另一个只包含API控制器的MVC站点上的方法。没有身份验证,一切正常,但我无法让身份验证正常工作。当发出请求时,我得到一个异常,返回401(如果你问我,这是一件好事,但它似乎没有发送凭据)
我还尝试在URL中输入用户名和密码,但也没有成功
以下是web API站点的web.config文件的相关部分:
<authentication>
<forms
cookieless="UseUri"
enableCrossAppRedirects="false">
<credentials passwordFormat="Clear">
<user name="site" password="XYZ123!"/>
</credentials>
</forms>
</authentication>
<authorization>
<deny users="?"/>
</authorization>
我想在那里输入一个用户名/密码,以确保调用方法的是网站。顺便说一句,我的API控制器具有“Authorize”属性
我的问题是:如何向Web API站点添加身份验证,以便使用身份验证调用该站点上的方法?您可以使用基本身份验证,而不是表单身份验证,如中所示。还有其他可能的身份验证方法。例如,基于令牌的身份验证,如所示。使用基本身份验证。您可以创建一个AuthorizationAttribute,用于验证授权标头中的用户名/密码,并在未授权时返回401响应 有关更多信息,请参阅