我可以通过 SSL 使用单独的 web.config 文件吗?

发布于 2025-01-01 07:13:31 字数 350 浏览 1 评论 0原文

首先我要说的是,我对 SSL 及其在 ASP.NET/WCF 中的工作原理不熟悉。

我有一个当前无需 SSL 即可访问的 Web 服务,我需要对其进行更改以接受通过 http 和 https 的流量。我的 web.config 引用使用 http 的第 3 方 URL。这些 URL 返回给客户端,然后通过 JavaScript 请求进行访问。如果使用 SSL 的网站使用 SSL 调用我的 Web 服务,我需要返回这些第三方 URL 的 https 版本,以便浏览器不会显示“混合安全”警告。

有人对如何最好地实现这一目标有任何建议吗?我的一个想法是创建一个并行站点来处理所有 ssl 流量,但我不确定这在 IIS6 中是否可行(这是我们现在使用的)。

I'll start out by saying I'm new to SSL and how it works in ASP.NET/WCF.

I have a web service that is currently accessed without SSL that I need to change to accept traffic over http and https. My web.config refers to 3rd party URLs that are using http. These URLs are returned to the client and then accessed requested through JavaScript. If a web site which is using SSL calls my web service using SSL, I need to return the https versions of these 3rd party URLs so that the browser doesn't display at "mixed security" warning.

Does anyone have any advice on how best to achieve this? One thought I had was to create a parallel site that handles all of the ssl traffic, but I wasn't sure how feasable this was in IIS6 (which is waht we're using for now).

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

苹果你个爱泡泡 2025-01-08 07:13:31

您应该将其保留在一个 web.config 文件中。我假设您正在尝试避免“此页面包含安全和不安全的内容”警告?

您可以在不使用协议的情况下将网址存储在 web.config 文件中(例如 www.google.com 而不是 http://www.google.com)。 google.com)然后,当您要在代码中使用 URL 时,在从 web.config 中提取它们之后但在显示它们之前,请使用 Request IsSecureConnection 属性

http://msdn.microsoft.com/en-us/library /system.web.httprequest.issecureconnection.aspx

例如:

((Request.IsSecureConnection)?"https://":"http://") + ConfigurationManager.AppSettings["theURL"]

或者您可以使用 javascript 来完成(这就是 Google Analytics 的做法):

var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");  

然后他们只需使用 gaJsHost“前缀”来获取资源..

You should keep it to one web.config file. I assume that you are trying to avoid the "This page contains secure and insecure content" warnings?

You can store your URLs in the web.config file without the protocol (e.g. www.google.com instead of http://www.google.com) Then when you go to use the URLs in the code, after you pull them from the web.config but before you display them, use the Request IsSecureConnection property

http://msdn.microsoft.com/en-us/library/system.web.httprequest.issecureconnection.aspx

For example:

((Request.IsSecureConnection)?"https://":"http://") + ConfigurationManager.AppSettings["theURL"]

Or you can do it with javascript (this is how Google Analytics does it):

var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");  

Then later they just use the gaJsHost "prefix" to fetch the resource..

Hello爱情风 2025-01-08 07:13:31

我不确定您到底在问什么,但只要您没有将 IIS 站点配置为仅允许 SSL 流量,就应该没问题。您的服务仍将通过 SSL 和非 SSL 流量运行。

您应该使用重写规则来确保所有用户都定向到 SSL
http://www.sslshopper.com/iis7-redirect-http-to -https.html

如果您按照我上面链接的说明使用 IIS7 中的重写模块,您可以确保访问您网站的任何人都会自动重定向到 SSL。

I'm not sure exactly what you're asking, but as long as you don't have your IIS site configured to only allow SSL traffic you should be fine. Your services will still work over SSL and non SSL traffic.

You should use rewrite rules to make sure that all users are directed to SSL
http://www.sslshopper.com/iis7-redirect-http-to-https.html

If you use the rewrite module in IIS7 as per the instructions I linked above you can ensure that anyone visiting your site is automatically redirected to SSL.

千里故人稀 2025-01-08 07:13:31

始终使用 https 来引用文件,问题就解决了。否则,可能开始使用不带协议的 URL - 例如 //somesite.com/somefile.html - 并且浏览器将使用当前页面的协议。

Always use https to reference files, and problem solved. Otherwise, maybe start using urls w/o protocol - e.g. //somesite.com/somefile.html - and the browser will use the protocol of the current page.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文