热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

c#先进行uri解码_c#–如何强制相对URI使用https?

我有一个相对URI:UriUnewUri(..ServicesAuthenticatedVariationsService.svc,UriKind.Relativ

我有一个相对URI:

Uri U = new Uri("../Services/Authenticated/VariationsService.svc",

UriKind.Relative);

问题在于,根据用户是否在其Web浏览器中键入https://或http://以访问silverlight应用程序,它可能在尝试联系服务时使用http或https.

我想强制程序使用https连接到服务.

最初我试过这个:

Uri U = new Uri("../Services/Authenticated/VariationsService.svc",

UriKind.Relative);

string NU = U.AbsoluteUri;

U = new Uri(NU.Replace("http://", "https://"), UriKind.Absolute);

但它在U.AbsoluteUri失败,因为它无法在相位Uri转换为绝对的Uri.那么如何将Uri Scheme更改为https?

最佳答案 相对路径必须首先转换为绝对路径.我使用激动的Silverlight XAP文件的Uri来做到这一点.

可能有一些方法可以减少这一点(使用Uris进行字符串操作感觉不对),但这是一个开始:

// Get the executing XAP Uri

var appUri = App.Current.Host.Source;

// Remove the XAP filename

var appPath = appUri.AbsolutePath.Substring(0, appUri.AbsolutePath.LastIndexOf('/'));

// Construct the required absolute path

var rootPath = string.Format("https://{0}{1}", appUri.DnsSafeHost, appUri.AbsolutePath);

// Make the relative target Uri absolute (relative to the target Uri)

var uri = new Uri(new Uri(rootPath), "../Services/Authenticated/VariationsService.svc");

这不包括转移portnumber(您可能希望在其他情况下执行此操作).就个人而言,我会将上面的代码放在一个帮助器方法中,该方法也处理端口(以及运行localhost时要做的任何不同的操作).

希望这可以帮助.



推荐阅读
  • 显示中文星期几
    显示中文星期几引自:第一种方法:直接翻译,最笨、最容易想到的方法。Code获得中文星期名称 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • Imtryingtofigureoutawaytogeneratetorrentfilesfromabucket,usingtheAWSSDKforGo.我正 ... [详细]
  • 如何查询zone下的表的信息
    本文介绍了如何通过TcaplusDB知识库查询zone下的表的信息。包括请求地址、GET请求参数说明、返回参数说明等内容。通过curl方法发起请求,并提供了请求示例。 ... [详细]
  • 基于Socket的多个客户端之间的聊天功能实现方法
    本文介绍了基于Socket的多个客户端之间实现聊天功能的方法,包括服务器端的实现和客户端的实现。服务器端通过每个用户的输出流向特定用户发送消息,而客户端通过输入流接收消息。同时,还介绍了相关的实体类和Socket的基本概念。 ... [详细]
  • 8.2location对象location对象既是window对象的属性,也是document对象的属性.window.location和document.location引用的是同一个对象. ... [详细]
  • 实现时主要问题在于怎么将所有对象给找出来,替换成user.name的形式。Overridepublicvoidsave(Comme ... [详细]
  • 本文详细介绍了GetModuleFileName函数的用法,该函数可以用于获取当前模块所在的路径,方便进行文件操作和读取配置信息。文章通过示例代码和详细的解释,帮助读者理解和使用该函数。同时,还提供了相关的API函数声明和说明。 ... [详细]
  • 本文介绍了设计师伊振华受邀参与沈阳市智慧城市运行管理中心项目的整体设计,并以数字赋能和创新驱动高质量发展的理念,建设了集成、智慧、高效的一体化城市综合管理平台,促进了城市的数字化转型。该中心被称为当代城市的智能心脏,为沈阳市的智慧城市建设做出了重要贡献。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • 将字符串数字拆分成单个数字_【LeetCode】842. 将数组拆分成斐波那契序列
    【LeetCode】842.SplitArrayintoFibonacciSequence将数组拆分成斐波那契序列(Medium)(JAVA)题目描述:Givenas ... [详细]
  • Hadoop中的MapReduce框架原理、自定义Partitioner步骤、在Job驱动中,设置自定义Partitioner、Partition 分区案例
    文章目录13.MapReduce框架原理13.3Shuffle机制13.3.2Partition分区13.3.2.3自定义Partitioner步骤13.3.2.3.1自定义类继承 ... [详细]
author-avatar
mysrain3
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有