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:pass@mysite.com/API/Entity/Customer
或作为查询字符串
http:://mysite.com/API/Entity/Customer?user=myuser&password=mypass
如何在API控制器中获取用户和密码,并使用表单身份验证验证这些凭据,就像授权属性一样?
或者是否有更好的方法从浏览器URL中调用此API方法?
答案 0 :(得分:0)
首先,您应该使用ViewModels,因为您的Actions有很多参数,出于安全考虑,您不应该通过querystring传递用户名和密码。如果您的方案更具体,则可以创建自己的[Authorize]
过滤器,并将验证逻辑放在那里。您的身份验证信息将通过请求标头命中服务器。