Asp.net 当WebAPI向服务器发出请求时,身份验证开销是否很大?
据我所知。每次webapi请求到达服务器时,都会对其进行身份验证。我的应用程序使用WebAPI 2、Identity 2,并具有以下get方法:Asp.net 当WebAPI向服务器发出请求时,身份验证开销是否很大?,asp.net,asp.net-web-api,asp.net-identity,asp.net-web-api2,Asp.net,Asp.net Web Api,Asp.net Identity,Asp.net Web Api2,据我所知。每次webapi请求到达服务器时,都会对其进行身份验证。我的应用程序使用WebAPI 2、Identity 2,并具有以下get方法: /api/cityStatusList /api/cityTypeList /api/cityOptionList 存在这些调用是为了获取页面的数据 如果webapi正在验证每个请求,那么我应该研究如何将所有这些请求合并为一个请求吗 如果webapi正在验证每个请求,那么我应该研究如何将所有这些请求合并为一个请求吗 怎么了,有什么麻烦吗 当然,您可以
/api/cityStatusList
/api/cityTypeList
/api/cityOptionList
存在这些调用是为了获取页面的数据
如果webapi正在验证每个请求,那么我应该研究如何将所有这些请求合并为一个请求吗
如果webapi正在验证每个请求,那么我应该研究如何将所有这些请求合并为一个请求吗
怎么了,有什么麻烦吗
当然,您可以这样定义并返回一个类:
public class CityData
{
public List<CityStatus> StatusList { get; set; }
public List<CityType> TypeList { get; set; }
public List<CityOption> OptionList { get; set; }
}
公共类城市数据
{
公共列表状态列表{get;set;}
公共列表类型列表{get;set;}
公共列表选项列表{get;set;}
}
为您的城市创建城市视图模型类,如下所示:
public class CityView
{
public List<cityStatusView> cityStatusList { get; set; }
public List<cityTypeView> cityTypeList { get; set; }
public List<cityOptionView> cityOptionList { get; set; }
}
public class cityStatusView
{
public int ID { get; set; }
}
public class cityTypeView
{
public int ID { get; set; }
}
public class cityOptionView
{
public int ID { get; set; }
}
为了直接解决这个问题-是的,它每次都在验证您的应用程序。然而,在标准web应用程序的规模上,这一次是微不足道的 将这些路由组合成一个可能是一个好主意,这不是因为身份验证必须进行多次,而是因为web请求可能只需要一段时间。通常,这是由于通过TCP/IP从服务器向客户端物理发送信号(并重新发送以补偿任何丢弃的数据包)所需的时间。即使并行化请求,更少的web请求也会更快 也就是说,默认情况下,我会尽可能做最简单的事情,而不用担心。我刚才提到的是一个优化,应该这样对待,而不是过早地完成 至于认证?这只是超级马拉松的几个步骤,这是你的网络请求,它真的不重要。如果我错了,有人会纠正我,但我认为它通常不会访问数据库——它所要做的就是解码以加密安全方式存储在身份验证cookie中的声明
// View model
var cityStatusList=..;
var cityTypeList=..;
var cityOptionList=..;
CityView objVM = new CityView();
objVM.cityStatusList = cityStatusList;
objVM.cityTypeList = cityTypeList;
objVM.cityOptionList = cityOptionList;
return ActionContext.Request.CreateResponse(HttpStatusCode.OK, objVM);