为什么使用“new NetworkCredential(用户名、密码)”无法对我的网站进行基本身份验证(从 WinForms C# 应用程序)?

2023-12-11

我有一个使用基本身份验证(用户名/密码)的网站。

为什么下面的代码不起作用?当我运行它时,Web 应用程序会将我带到登录控制器,而我希望在我填充凭据的情况下它应该已经经过身份验证。换句话说,我试图确认在.NET 中如何确认我的winforms HttpWebRequest,以便它将自动执行身份验证过程。我假设 NetworkCredential 是应该执行此操作的 .net 类?或者在 .NET 中是否期望有一些您必须自己实现的手动两步过程?

这是代码:

    // Create a new webrequest to the mentioned URL.            
    var uri = new Uri("http://10.1.1.102:3000/download/sunset");
    var myWebRequest = (HttpWebRequest)WebRequest.Create(uri);            
    myWebRequest.PreAuthenticate=true;            
    var networkCredential=new NetworkCredential("test", "asdfasdf");                        
    myWebRequest.Credentials=networkCredential;
    var myWebResponse = (HttpWebResponse)myWebRequest.GetResponse();

    Console.Out.WriteLine("STATUS = " + myWebResponse.StatusCode);

    var stream = myWebResponse.GetResponseStream();
    var reader = new StreamReader(stream);
    string text_read = reader.ReadToEnd();
    Console.WriteLine(text_read);
    DisplayHtml(text_read);
    reader.Close();
    stream.Close();
    myWebResponse.Close();

Thanks


WebRequest除非受到站点的质疑,否则不会发送凭据。该网站应首先响应 401“需要授权”WWW-Authenticate标头;这WebRequest将使用凭据响应质询,并且服务应使用 200 Http 内容进行响应。

听起来该网站没有正确实现基本身份验证(规范说它应该首先挑战,以通过该领域),这是一种非常常见的行为。您可以手动将基本身份验证添加到WebRequest.Headers集合,这就是大多数开发人员最终所做的事情。

See HttpWebRequest 未传递凭据

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么使用“new NetworkCredential(用户名、密码)”无法对我的网站进行基本身份验证(从 WinForms C# 应用程序)? 的相关文章

  • 如何从本机 C(++) DLL 调用 .NET (C#) 代码?

    我有一个 C app exe 和一个 C my dll my dll NET 项目链接到本机 C DLL mynat dll 外部 C DLL 接口 并且从 C 调用 C DLL 可以正常工作 通过使用 DllImport mynat dl
  • 从经典 ASP 调用 .Net C# DLL 方法

    我正在开发一个经典的 asp 项目 该项目需要将字符串发送到 DLL DLL 会将其序列化并发送到 Zebra 热敏打印机 我已经构建了我的 DLL 并使用它注册了regasm其次是 代码库这使得 IIS 能够识别它 虽然我可以设置我的对象
  • 对类 static constexpr 结构的未定义引用,g++ 与 clang

    这是我的代码 a cp p struct int2 int x y struct Foo static constexpr int bar1 1 static constexpr int2 bar2 1 2 int foo1 return
  • 访问外部窗口句柄

    我当前正在处理的程序有问题 这是由于 vista Windows 7 中增强的安全性引起的 特别是 UIPI 它阻止完整性级别较低的窗口与较高完整性级别的窗口 对话 就我而言 我想告诉具有高完整性级别的窗口进入我们的应用程序 它在 XP 或
  • WPF 数据绑定到复合类模式?

    我是第一次尝试 WPF 并且正在努力解决如何将控件绑定到使用其他对象的组合构建的类 例如 如果我有一个由两个单独的类组成的类 Comp 为了清楚起见 请注意省略的各种元素 class One int first int second cla
  • 使用 C# 中的 CsvHelper 将不同文化的 csv 解析为十进制

    C 中 CsvHelper 解析小数的问题 我创建了一个从 byte 而不是文件获取 csv 文件的类 并且它工作正常 public static List
  • 两个静态变量同名(两个不同的文件),并在任何其他文件中 extern 其中一个

    在一个文件中将变量声明为 static 并在另一个文件中进行 extern 声明 我认为这会在链接时出现错误 因为 extern 变量不会在任何对象中看到 因为在其他文件中声明的变量带有限定符 static 但不知何故 链接器 瑞萨 没有显
  • 使用 Vaadin Flow Web 应用程序处理全局所有布局和“路由”URL 的登录

    Vaadin 8 在 Vaadin 8 中 在我的UI子类我通过检查用户的会话是否带有一个属性来处理登录 该属性表明他们是否已成功登录 如果没有的话 我的UI子类显示登录布局 而不是带有导航选项的其他内容 例如菜单栏和在该 UI 内切换布局
  • LINQ:使用 INNER JOIN、Group 和 SUM

    我正在尝试使用 LINQ 执行以下 SQL 最接近的是执行交叉联接和总和计算 我知道必须有更好的方法来编写它 所以我向堆栈团队寻求帮助 SELECT T1 Column1 T1 Column2 SUM T3 Column1 AS Amoun
  • 复制目录下所有文件

    如何将一个目录中的所有内容复制到另一个目录而不循环遍历每个文件 你不能 两者都不Directory http msdn microsoft com en us library system io directory aspx nor Dir
  • C 函数 time() 如何处理秒的小数部分?

    The time 函数将返回自 1970 年以来的秒数 我想知道它如何对返回的秒数进行舍入 例如 对于100 4s 它会返回100还是101 有明确的定义吗 ISO C标准没有说太多 它只说time 回报 该实现对当前日历时间的最佳近似 结
  • 编译时展开 for 循环内的模板参数?

    维基百科 here http en wikipedia org wiki Template metaprogramming Compile time code optimization 给出了 for 循环的编译时展开 我想知道我们是否可以
  • 在 WPF 中使用 ReactiveUI 提供长时间运行命令反馈的正确方法

    我有一个 C WPF NET 4 5 应用程序 用户将用它来打开某些文件 然后 应用程序将经历很多动作 读取文件 通过许多插件和解析器传递它 这些文件可能相当大 gt 100MB 因此这可能需要一段时间 我想让用户了解 UI 中发生的情况
  • 相当于Linux中的导入库

    在 Windows C 中 当您想要链接 DLL 时 您必须提供导入库 但是在 GNU 构建系统中 当您想要链接 so 文件 相当于 dll 时 您就不需要链接 为什么是这样 是否有等效的 Windows 导入库 注意 我不会谈论在 Win
  • 使用特定参数从 SQL 数据库填充组合框

    我在使用参数从 sql server 获取特定值时遇到问题 任何人都可以解释一下为什么它在 winfom 上工作但在 wpf 上不起作用以及我如何修复它 我的代码 private void UpdateItems COMBOBOX1 Ite
  • 对于某些 PDF 文件,LoadIFilter() 返回 -2147467259

    我正在尝试使用 Adob e IFilter 搜索 PDF 文件 我的代码是用 C 编写的 我使用 p invoke 来获取 IFilter 的实例 DllImport query dll SetLastError true CharSet
  • C# 使用“?” if else 语句设置值这叫什么

    嘿 我刚刚看到以下声明 return name null name NA 我只是想知道这在 NET 中叫什么 是吗 代表即然后执行此操作 这是一个俗称的 条件运算符 三元运算符 http en wikipedia org wiki Tern
  • MySQL Connector C/C API - 使用特殊字符进行查询

    我是一个 C 程序 我有一个接受域名参数的函数 void db domains query char name 使用 mysql query 我测试数据库中是否存在域名 如果不是这种情况 我插入新域名 char query 400 spri
  • 指针和内存范围

    我已经用 C 语言编程有一段时间了 但对 C 语言还是很陌生 有时我对 C 处理内存的方式感到困惑 考虑以下有效的 C 代码片段 const char string void where is this pointer variable l
  • 如何确定 CultureInfo 实例是否支持拉丁字符

    是否可以确定是否CultureInfo http msdn microsoft com en us library system globalization cultureinfo aspx我正在使用的实例是否基于拉丁字符集 我相信你可以使

随机推荐

  • 启动 celery Worker 并启用它的广播队列

    我正在尝试启动芹菜工作人员 因此它只侦听单个队列 这不是问题 我可以这样做 python m celery worker A my module Q my queue c 1 但现在我也想要这个my queue队列成为广播队列 所以我在我的
  • 以编程方式将 [AllowAnonymous] 属性添加到我的所有控制器方法

    我有一个带有多个控制器的 WebAPI2 REST api 我使用基于角色的身份验证 我在所有控制器和一些方法上添加了 Authorize 属性 但是 在 DEV 环境中我想禁用身份验证 我希望我可以将一些代码放入WebApiConfig例
  • CORS 错误:“请求仅支持协议方案:http…”等

    我正在尝试运行一个简单的应用程序 我有一个 Express 后端 当访问时返回一个 JSON 字符串localhost 4201 ticker 当我运行服务器并从我的 Angular 服务向此链接发出请求时http 我收到以下错误 XMLH
  • jQuery UI Sortable 手动设置位置

    如何使用一些代码手动设置位置 Ok 我有一些具有 sortable 行为的 div div class sort div div class sort div div class sort div div class sort div di
  • 编码为单字节扩展 ascii 值

    在 C 中 有一种方法可以将扩展 ascii 值 128 255 编码为其单字节值 如下所示 http asciitable com 我尝试过使用 Encoding UTF8 GetBytes 但会返回扩展代码的多字节值 我不需要超过 25
  • MATLAB 中的 {} 和 [] 有什么区别?

    gt gt A 1 2 2 3 A 1 2 2 3 gt gt A 1 2 2 3 A 1 2 2 3 在我看来它们本质上是同一件事 是针对细胞的 用于数组 矩阵
  • 比较两个可选数组时出现 Swift 错误

    I get a 编译错误在下一个 Swift 代码中 var x Array
  • 将十六进制字符串转换为字节数组 (.NET) 的最佳方法是什么?

    我有一个十六进制字符串 需要将其转换为字节数组 最好的方法 即高效和最少的代码 是 string hexstr 683A2134 byte bytes new byte hexstr Length 2 for int x 0 x lt by
  • 如何使用plot_trisurf

    将matplotlib版本从1 3 1更新到2 0 2后 当我想使用plot trisurf通过3d点生成TIN时 我得到了难以理解的结果 我的测试代码如下 import sys import matplotlib import matpl
  • VBA 运行时错误“70”:无法设置列表属性。没有权限

    我试图通过单击列表框来更新数据 但出现错误 请参阅下面的代码 使用下面的代码将列表框值显示到文本框 Private Sub ListBox1 Click Dim i As Integer i Me ListBox1 ListIndex Me
  • Rspec / Shoulda:测试,调用自定义验证器

    我有一个自定义验证器 位于 app validators uri validator rb 中 用于 validates link uri true 我如何在我的规格中指定这一点 理想情况下 我希望进行单线通话 例如 it should v
  • 通过arg执行函数

    我想做的是 当我输入特定参数时 它会启动一个函数 这可以通过argparse 因此 如果我在应用程序中点击 add 参数 它就会触发 add 函数 parser argparse ArgumentParser description to
  • 为什么groupByKey操作总是有200个任务?

    每当我做一个groupByKey在 RDD 上 即使原始表非常大 它也会分为 200 个作业 例如2k 个分区和数千万行 此外 该操作似乎陷入了最后两个任务 这两个任务的计算时间非常长 为什么是200 如何增加它 会有帮助吗 这个设置来自s
  • 如何在Django html页面中显示外键数据?

    我想从相关的外键模型中获取数据 但我无法从相关的模型中获取数据 请告诉我该怎么做 我要显示name价值来自Model2 table 这是我的models py file class Customer models Model cus nam
  • android快速获取所有用户的朋友个人资料图片

    我正在寻找一种快速获取我所有朋友的个人资料照片的方法 我正在使用适用于 Android 的 Facebook SDK 现在我正在获取我朋友的列表 JSON 对象并在该对象内使用 for 循环运行 在循环中 我将每个图像放入 Drawable
  • MVC 6 绑定属性消失了?

    请原谅我的菜鸟问题 但我注意到 MVC 6 的绑定属性不再作为默认值出现在控制器模板中 我知道该属性仍然存在 但我们仍然需要使用它们吗 我听说它们可以用来防止过度发布攻击 他们是否会删除它 因为 MVC 6 可以找到在不使用它们的情况下防止
  • 线程“main”中的异常 java.lang.NoClassDefFoundError: org/codehaus/jackson/JsonParseException

    我正在使用 Twilio 从我的网络应用程序发送 SMS 消息 我几乎已经完成了集成 它正在发送短信 但生成了错误 我不明白为什么 我已经包含了一个 JSON 依赖项json和这个文件link但我仍然收到错误 我还需要包含哪些其他罐子 Ex
  • 使用 qmake 获取日期

    由于我使用今天的日期作为我的应用程序版本 因此我有兴趣自动填充它 目前我正在我的项目文件中执行以下操作 VERSION 15 4 20 但我想让它自动进行 VERSION YEAR MONTH DAY 任何想法 您可以使用QMAKE POS
  • 抛出异常的哪一部分成本很高?

    在 Java 中 当实际上没有错误时 使用 throw catch 作为逻辑的一部分通常是一个坏主意 部分 因为抛出和捕获异常的成本很高 并且在循环中多次执行通常比其他方法慢得多不涉及抛出异常的控制结构 我的问题是 成本是在 throw c
  • 为什么使用“new NetworkCredential(用户名、密码)”无法对我的网站进行基本身份验证(从 WinForms C# 应用程序)?

    我有一个使用基本身份验证 用户名 密码 的网站 为什么下面的代码不起作用 当我运行它时 Web 应用程序会将我带到登录控制器 而我希望在我填充凭据的情况下它应该已经经过身份验证 换句话说 我试图确认在 NET 中如何确认我的winforms