HttpWebRequest向路由器提交基本身份验证
HttpWebRequest向路由器提交基本身份验证
服务端IIS设置为不允许匿名访问,只选择了基本身份验证,客户端使用HttpWebRequest发送一个get请求,请求一个页面。
基本身份验证,客户端直接把用户的用户名和密码简单的转换为base64编码后发送到服务端,属于明码传送,不具安全性。
看一下整个请求响应过程:
1.1. 第一次HttpWebRequest先以匿名发送http请求
1.2. 服务端返回无授权回应
服务端IIS设置为不允许匿名访问,要求基本身份验证,所以服务端返回无授权回应,
同时在http头加了个WWW-Authenticate: Basic realm="2003base" 头,Basic表示要求基本身份验证。
1.3. HttpWebRequest发送base64格式的用户名和密码
HttpWebRequest收到Basic的验证头后,就把NetworkCredential提供的用户名和口令链接起来,转换成base64编码,直接发送到服务端。
Base64编码用户名和密码看上去是这样的:Y2hua2luZzpwYXNzd29yZA==
经过转换后,可以看到用户名和密码是:chnking:password
代码:
/// <summary>
/// 路由器设置
/// </summary>
/// <param name="userName">路由器登录用户名</param>
/// <param name="password">路由器登录密码</param>
/// <param name="url">操作路径</param>
public static void RouterSet(string userName, string password,string url)
{
try
{
HttpWebRequest request =(HttpWebRequest)HttpWebRequest.Create(url);
request.Method = "get";
request.ContentType = "application/x-www-form-urlencoded";
request.Credentials = CredentialCache.DefaultCredentials;
//获得用户名密码的Base64编码
string code =Convert.ToBase64String(Encoding.ASCII.GetBytes(string.Format("{0}:{1}", userName, password)));
//添加Authorization到HTTP头
request.Headers.Add("Authorization", "Basic " + code);
HttpWebResponse response =(HttpWebResponse)request.GetResponse();
response.Close();
}
catch (Exception ex)
{
LogHelper.logerror.Error("路由器设置错误:"+ex.Message);
}
}
HttpWebRequest向路由器提交基本身份验证的更多相关文章
- MVC身份验证.MVC过滤器.MVC6关键字Task,Async.前端模拟表单验证,提交.自定义匿名集合.Edge导出到Excel.BootstrapTree树状菜单的全选和反选.bootstrap可搜索可多选可全选下拉框
1.MVC身份验证. 有两种方式.一个是传统的所有控制器继承自定义Control,然后再里面用MVC的过滤器拦截.所以每次网站的后台被访问时.就会先走入拦截器.进行前端和后端的验证 一个是利用(MVC ...
- Nginx集群之SSL证书的WebApi身份验证
目录 1 大概思路... 1 2 Nginx集群之SSL证书的WebApi身份验证... 1 3 AuthorizeAttribute类... 2 4 ...
- ASP.NET Form身份验证方式详解
注:不会涉及ASP.NET的登录系列控件以及membership的相关话题, 我只想用比较原始的方式来说明在ASP.NET中是如何实现身份认证的过程. ASP.NET身份认证基础 在开始今天的博客 ...
- C#中使用 HttpWebRequest 向网站提交数据
HttpWebRequest 是 .NET 基类库中的一个类,在命名空间 System.Net 里,用来使用户通过 HTTP 协议和服务器交互. HttpWebRequest 对 HTTP 协议进行了 ...
- Azure Service Bus 中的身份验证方式 Shared Access Signature
var appInsights=window.appInsights||function(config){ function r(config){t[config]=function(){var i= ...
- ASP.NET MVC 随想录——探索ASP.NET Identity 身份验证和基于角色的授权,中级篇
在前一篇文章中,我介绍了ASP.NET Identity 基本API的运用并创建了若干用户账号.那么在本篇文章中,我将继续ASP.NET Identity 之旅,向您展示如何运用ASP.NET Ide ...
- SQL Server安全(2/11):身份验证(Authentication)
在保密你的服务器和数据,防备当前复杂的攻击,SQL Server有你需要的一切.但在你能有效使用这些安全功能前,你需要理解你面对的威胁和一些基本的安全概念.这篇文章提供了基础,因此你可以对SQL Se ...
- 关于WEB Service&WCF&WebApi实现身份验证之WEB Service篇
在这个WEB API横行的时代,讲WEB Service技术却实显得有些过时了,过时的技术并不代表无用武之地,有些地方也还是可以继续用他的,我之所以会讲解WEB Service,源于我最近面试时被问到 ...
- JavaWeb学习笔记——开发动态WEB资源(五)servlet身份验证
本工程的功能是实现Javaweb的servlet身份验证 一下是login.html文件中的代码 <!DOCTYPE html> <html> <head> < ...
随机推荐
- rabbitMQ+yii2 使用
安装rabbitMQ 见此文章 http://www.cnblogs.com/zxxyx/p/6229613.html 安装好之后 出现此目录: 然后需要yii里面进行载入: 这个目录下面: 加上这个 ...
- SQL Server 数据库的维护(四)__游标(cursor)
--维护数据库-- --游标(cursor)-- --概述: 注:使用select语句查询结果的结果集是一个整体,如果想每次处理一行或一部分行数据,游标可以提供这种处理机制.可以将游标理解为指针.指针 ...
- 1.1. 如何使用XproerUI库
项目类型:MFC XproerUI结构: 3rd 第三方库目录 cximage dll 编译的DLL目录 pug ...
- vs2012中将图片放到resource中进行调用
1.在项目中新建一个名叫resource的文件夹,然后将所需图片信息放入该文件夹,如图 2.右击该项目,选择属性->资源选项卡,步骤如图所示 点击添加现有文件,然后找到你刚刚添加的resourc ...
- (转载)iOS 极光推送SDK 集成指南
iOS SDK 集成指南 使用提示 本文匹配的 SDK版本:r1.2.5 以后. 查看最近更新了解最新的SDK更新情况. 产品功能说明 极光推送(JPush)是一个端到端的推送服务,使得服务器端消息能 ...
- 复制SharePoint列表项(SPListItem)到另一个列表
从理论上讲,有一个简单到难以置信的解决办法:SPListItem提供了一个CopyTo(destinationUrl)方法(可参考MSDN).不幸的是,这个方法似乎用不了.至少对我的情况(一个带附件的 ...
- RPC 框架通信原理
RPC是指远程过程调用,也就是说两台服务器A,B,一个应用部署在A服务器上,想要调用B服务器上应用提供的函数/方法,由于不在一个内存空间,不能直接调用,需要通过网络来表达调用的语义和传达调用的数据: ...
- WCF服务二:创建一个简单的WCF服务程序
在本例中,我们将实现一个简单的计算服务,提供基本的加.减.乘.除运算,通过客户端和服务端运行在同一台机器上的不同进程实现. 一.新建WCF服务 1.新建一个空白解决方案,解决方案名称为"WC ...
- 顶点着色器详解 (Vertex Shaders)
学习了顶点处理,你就知道固定功能流水线怎么将顶点从模型空间坐标系统转化到屏幕空间坐标系统.虽然固定功能流水线也可以通过设置渲染状态和参数来改变最终输出的结果,但是它的整体功能还是受限.当我们想实现一个 ...
- 第四组 12月8号sprint会议
会议时间:12月8号,16:30会议地点:蛙鸣湖旁小树林 会议进程: 1.首先对到场人员进行点名 2.对程序主要功能进行讨论,每人都可以自由发言,然后分配每个成员的任务,并决定实现第一个功能: ...