当前位置: 首页 > news >正文

永康住房和城乡建设局网站建网站的过程

永康住房和城乡建设局网站,建网站的过程,asp网站qq登录,有没有学做ppt发网站或论坛优点是逻辑简单明了、设置简单。 缺点显而易见#xff0c;即使是BASE64后也是可见的明文#xff0c;很容易被破解、非法利用#xff0c;使用HTTPS是一个解决方案。 还有就是HTTP是无状态的#xff0c;同一客户端每次都需要验证。 实现#xff1a; 客户端在用户输入用户名及… 优点是逻辑简单明了、设置简单。 缺点显而易见即使是BASE64后也是可见的明文很容易被破解、非法利用使用HTTPS是一个解决方案。 还有就是HTTP是无状态的同一客户端每次都需要验证。   实现 客户端在用户输入用户名及密码后将用户名及密码以BASE64加密加密后的密文将附加于请求信息中如当用户名为Parry密码为123456时客户端将用户名和密码用:合并并将合并后的字符串用BASE64加密并于每次请求数据时将密文附加于请求头Request Header中。 HTTP服务器在每次收到请求包后根据协议取得客户端附加的用户信息BASE64加密的用户名和密码解开请求包对用户名及密码进行验证如果用户名及密码正确则根据客户端请求返回客户端所需要的数据否则返回错误代码或重新要求客户端提供用户名及密码。  自定义属性HTTPBasicAuthorize 继承AuthorizeAttribute并实现两个方法OnAuthorization和HandleUnauthorizedRequest。 public class HTTPBasicAuthorizeAttribute : System.Web.Http.AuthorizeAttribute{public override void OnAuthorization(System.Web.Http.Controllers.HttpActionContext actionContext){if (actionContext.Request.Headers.Authorization ! null){//对客户端进行BASE64后的字符串再解码string userInfo Encoding.Default.GetString(Convert.FromBase64String(actionContext.Request.Headers.Authorization.Parameter));//用户验证逻辑if (string.Equals(userInfo, string.Format({0}:{1}, Parry, 123456))){IsAuthorized(actionContext);}else{HandleUnauthorizedRequest(actionContext);}}else{HandleUnauthorizedRequest(actionContext);}} //或不重写OnAuthorization对IsAuthorized方法重写protected override bool IsAuthorized(System.Web.Http.Controllers.HttpActionContext actionContext){if (actionContext.Request.Method HttpMethod.Options)return true;if (actionContext.Request.Headers.Authorization ! null actionContext.Request.Headers.Authorization.Parameter ! null) { // System.Web.Security.FormsAuthentication.var userdata System.Text.Encoding.Default.GetString(Convert.FromBase64String(actionContext.Request.Headers.Authorization.Parameter));if (userdata.Equals(String.Format({0}:{1}, tzy, 123))) {return true;//base.IsAuthorized(actionContext);}}return false;// return base.IsAuthorized(actionContext);}protected override void HandleUnauthorizedRequest(System.Web.Http.Controllers.HttpActionContext actionContext){var challengeMessage new System.Net.Http.HttpResponseMessage(System.Net.HttpStatusCode.Unauthorized);challengeMessage.Headers.Add(WWW-Authenticate, Basic);throw new System.Web.Http.HttpResponseException(challengeMessage);}} 这些代码值得注意的地方及说明 1.  if (actionContext.Request.Method  HttpMethod.Options)   这个判断是在进行跨域访问时浏览器会发起一个Options请求去试探这个请求但是他不会带着data参数和一些header参数所以认证肯定没法通过导致无法继续进行所以给他直接认证通过。(对非跨域的则没有影响) 2.对Authorization.Parameter 的解密这里的解析跟登陆成功之后返回的Token 加密方式相同就行 这里采用的是Basic认证方式简单的64位字符串 3.HandleUnauthorizedRequest方法 这里因为是继承重写的AuthorizeAttribute在IsAuthorized 返回False的时候会执行这个方法 这里是返回一个401的错误信息 4.challengeMessage.Headers.Add(WWW-Authenticate,Basic);   这句代码指示浏览器 认证方式为Basic 然后浏览器自动弹出一个登陆窗口并以basic 的方式 加密后每次通过header 传输到服务器进行认证然后得到授权 在需要验证的Controller的类加上[HTTPBasicAuthorize]属性即可对当前控制器下的所有方法实现基本身份认证  然后我习惯更改一下api的路由  就改了一下routeTemplate 加入/{action} public static void Register(HttpConfiguration config){// Web API configuration and services// Web API routesconfig.MapHttpAttributeRoutes();// config.Filters.Add(new AuthorizeAttribute());config.Routes.MapHttpRoute(name: DefaultApi,routeTemplate: api/{controller}/{action}/{id},defaults: new { id RouteParameter.Optional });} 如果以webapi里面有xml 方式返回更改formatter 如下 protected void Application_Start(){GlobalConfiguration.Configure(WebApiConfig.Register);GlobalConfiguration.Configuration.Formatters.XmlFormatter.SupportedMediaTypes.Clear();}   https://www.cnblogs.com/leo_wl/p/3553385.htmlBasic Authentication具体做法创建一个filter继承自AuthorizationFilterAttribute重写OnAuthorization来实现我们的需求。原理是客户端在发送Http请求的时候在Header部分提供一个基于Base64编码的用户名和密码形式为“usernamepassword”消息接收者服务器进行验证通过后继续处理请求。1.从请求Header中获取校验数据2.判断验证信息类型为“basic”并包含base64编码3.将base64编码转化为string并提取用户名和密码4.校验提供的验证信息是否与访问的资源信息相同学生的详细信息只能由他自己访问5.去数据库校验用户名及密码6.如果校验通过则设置Thread的CurrentPrincipal使本次接下来的请求都是通过校验的。7.校验没通过返回401Unauthorized并添加一个WWW-Authenticate响应头 转载于:https://www.cnblogs.com/shy1766IT/p/5525695.html
http://www.huolong8.cn/news/211365/

相关文章:

  • 潍坊网站定制模板建站火车头采集wordpress博客
  • 网站搭建设计课程报告电商网站系统建设
  • 做讲课ppt的网站网站建设利润
  • 网站开发 流程图网上投资网站建设
  • 兄弟网站制作qq刷赞网站怎么做的
  • 国外展览展示设计网站临汾网站建设费用
  • 广州网站开发建设有关网站开发的论文
  • 开发视频网站多少钱网站建设开发招标书
  • 高企达建设有限公司网站做微信的网站有哪些
  • 东莞网站关键词优化公司做gif的网站
  • 网站的登录界面怎么做wordpress 指定编辑人
  • 合水口网站建设白云网站开发
  • 玉石电商网站建设方案网站最新发布址
  • 合肥html5网站建设网站建设的基本流程和步骤
  • 做gif的网站正规的扬中网站建设
  • 模板网站优化中国家具网
  • 国外产品展示网站模板怎么建设两个大淘客网站
  • 尧都网站建设公众号设计
  • 微信开放社区兰州优化官网推广
  • 网站建设与管理的书销售产品网站有哪些
  • 南充高端网站建设做网站如何选择关键词
  • 合肥市建设工程造价信息网站景安做网站教程
  • 专业做网站建设制作服务建设网站需要的工具
  • 百度不收录网站内页注册公司需要什么条件吗
  • 做网站的公司怎么找客户做网站需要掌握的软件
  • 网站建设的报告蓝色网站后台
  • 如何建设一个自己的网站首页网站前期定位
  • 苏州 规划建设局网站做企业咨询管理怎么样
  • 企业网站实名审核中心厦门学网站建设
  • 网页设计和网站开发有什么区别东营企业自助建站