Asp.net 当WebAPI向服务器发出请求时,身份验证开销是否很大?

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正在验证每个请求,那么我应该研究如何将所有这些请求合并为一个请求吗 怎么了,有什么麻烦吗 当然,您可以

据我所知。每次webapi请求到达服务器时,都会对其进行身份验证。我的应用程序使用WebAPI 2、Identity 2,并具有以下get方法:

/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);