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

[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。
如何允许从浏览器URL调用Get()方法。

可以在URL中使用指定用户名和密码
http:://user:[email protected]/API/Entity/Customer

或作为查询字符串
http:://mysite.com/API/Entity/Customer?user=myuser&password=mypass

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

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

最佳答案

首先,您应该使用ViewModels,因为您的操作有很多参数,并且出于安全原因,您不应通过querystring传递用户名和密码。如果您有更特定的方案,则可以创建自己的[Authorize]过滤器,然后在其中放置验证逻辑。您的身份验证信息将通过请求 header 到达服务器。

关于asp.net - 如何为Web API GET请求指定用户名和密码,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34187801/

10-10 17:56