2023年6月20日发(作者:)
vs2017开发webapi应⽤学习笔记⼀、新建web api 项⽬在vs2017中选择新建项⽬-选择 web 应⽤程序,在如下图⽰项⽬选择窗⼝中,选择“空“项⽬,勾选 Web Api,确定后系统⾃动创建空的Web Api项⽬;⼆、设置路由默认情况下创建的Web Api 项⽬采⽤"api/{controller}/{id}" 的⽅式映射访问路由,即:api为默认路径前缀,controller对应为控制器名称中去掉controller中的部分,⽽接⼝名称采⽤get前缀的⽅法,即访问接⼝的method采⽤get,其它的依次类推,访问接⼝⾮常的机械且难以理解,可在控制器中使⽤RoutePrefix属性重新定义控制对应的访问路径名称,在⽅法中使⽤Route属性映射⽅法的访问路径,使⽤HttpGet等属性映射⽅法的访问method,这样可提⾼整个应⽤的灵活性和规范性;三、在web api中启⽤会话⽀持web api默认情况并不⽀持会话,通过 n访问相关会话对象时,总是为null,需要使⽤以下⽅法启⽤会话⽀持:重写对象对的 Init() ⽅法,⽰例代码如下:
public override void Init() { //=======================启⽤会话============================= thenticateRequest += (sender, e) => sionStateBehavior(ed); (); }四、对接⼝启⽤访问认证新建RequestAuthorizeAttribute类,该类继承⾄AuthorizeAttribute,重写⽗类的OnAuthorization⽅法;在需要验证的接⼝⽅法中使⽤RequestAuthorizeAttribute属性,RequestAuthorizeAttribute代码如下: public class RequestAuthorizeAttribute : AuthorizeAttribute { public override void OnAuthorization(tionContext actionContext) { //从http请求的头⾥⾯获取⾝份验证信息,验证是否是请求发起⽅的ticket var authorization = ization; if ((authorization != null) && (ter != null)) { //解密⽤户ticket,并校验⽤户名密码是否匹配 var encryptTicket = ter; if (ValidateTicket(encryptTicket)) { orized(actionContext); } else { HandleUnauthorizedRequest(actionContext); } } //如果取不到⾝份验证信息,并且不允许匿名访问,则返回未验证401 else { var attributes = tomAttributes
var filePath = h("~/" + [file].FileName); [file].SaveAs(filePath); }
2023年6月20日发(作者:)
vs2017开发webapi应⽤学习笔记⼀、新建web api 项⽬在vs2017中选择新建项⽬-选择 web 应⽤程序,在如下图⽰项⽬选择窗⼝中,选择“空“项⽬,勾选 Web Api,确定后系统⾃动创建空的Web Api项⽬;⼆、设置路由默认情况下创建的Web Api 项⽬采⽤"api/{controller}/{id}" 的⽅式映射访问路由,即:api为默认路径前缀,controller对应为控制器名称中去掉controller中的部分,⽽接⼝名称采⽤get前缀的⽅法,即访问接⼝的method采⽤get,其它的依次类推,访问接⼝⾮常的机械且难以理解,可在控制器中使⽤RoutePrefix属性重新定义控制对应的访问路径名称,在⽅法中使⽤Route属性映射⽅法的访问路径,使⽤HttpGet等属性映射⽅法的访问method,这样可提⾼整个应⽤的灵活性和规范性;三、在web api中启⽤会话⽀持web api默认情况并不⽀持会话,通过 n访问相关会话对象时,总是为null,需要使⽤以下⽅法启⽤会话⽀持:重写对象对的 Init() ⽅法,⽰例代码如下:
public override void Init() { //=======================启⽤会话============================= thenticateRequest += (sender, e) => sionStateBehavior(ed); (); }四、对接⼝启⽤访问认证新建RequestAuthorizeAttribute类,该类继承⾄AuthorizeAttribute,重写⽗类的OnAuthorization⽅法;在需要验证的接⼝⽅法中使⽤RequestAuthorizeAttribute属性,RequestAuthorizeAttribute代码如下: public class RequestAuthorizeAttribute : AuthorizeAttribute { public override void OnAuthorization(tionContext actionContext) { //从http请求的头⾥⾯获取⾝份验证信息,验证是否是请求发起⽅的ticket var authorization = ization; if ((authorization != null) && (ter != null)) { //解密⽤户ticket,并校验⽤户名密码是否匹配 var encryptTicket = ter; if (ValidateTicket(encryptTicket)) { orized(actionContext); } else { HandleUnauthorizedRequest(actionContext); } } //如果取不到⾝份验证信息,并且不允许匿名访问,则返回未验证401 else { var attributes = tomAttributes
var filePath = h("~/" + [file].FileName); [file].SaveAs(filePath); }
发布评论