Web API GET请求如何指定用户名和密码

How to specify user name and password for Web API GET request

ASP.NET MVC4 WebAPI 应用程序使用 Web 表单身份验证API:

[Authorize]
public class EntityController : APIBase
{
    public HttpResponseMessage Get(string id,
        string _sidx = null,
        string _sord = null,
        uint _page = 1,
        uint _rows = 100,
        string _filters = null,
        int? _dokumnr = null,
        int? _vmnr = null,
        string _isik = null,
        uint _npage = 1,
        bool _unpaid = false,
        uint _layout = 0,
        string _culture = null
    )
    {
 ....

这需要传递身份验证cookie。 如何允许从浏览器调用 Get() 方法 url.

用户名和密码可以在URL中使用

指定
http:://user:pass@mysite.com/API/Entity/Customer

或作为查询字符串

http:://mysite.com/API/Entity/Customer?user=myuser&password=mypass

如何在 API 控制器中获取用户和密码并通过使用表单身份验证验证这些凭据来登录,就像授权属性一样?

或者是否有更好的方法从浏览器调用此 API 方法 url `?

首先,你应该使用ViewModels,因为你的Actions有很多参数,出于安全考虑你不应该通过querystring传递用户名和密码。如果您有更具体的场景,您可以创建自己的 [Authorize] 过滤器,并将验证逻辑放入其中。您的身份验证信息将通过请求 Header.

到达服务器