我希望这是一个简单的问题,但我似乎无法理解。很明显这行代码是如何确定的:
Request.Url.IsDefaultPort
通常情况下,它是这样的:
Request.Url.IsDefaultPort ? "" : ":" + Request.Url.Port
我的问题涉及更多内容:
- 如果我的网址是:http://www.mysitename.com,这是否属实? IIS 为此使用端口 80
- 如果我的网址是:http://www.mysitename.com:12345,这是否属实? IIS 为此使用端口 12345
- 这是否等同于:Request.Url.Port == 80? "": ":"+ Request.Url.Port?
我确实检查了微软的 MSDN article事实往往如此,这没什么帮助。以下是关于如何确定此属性的引文:“如果 Port 属性中的值是此方案的默认端口,则 bool 值为 true;否则为 false。”不幸的是,我不知道他们所说的“计划”是什么意思。
预先感谢您的帮助。
最佳答案
如果该端口是该方案的默认端口,则此值为true
。例如,HTTP 作为方案 (http:
) 使用端口 80。HTTPS 作为方案 (https:
) 使用端口 443。
Uri.IsDefaultPort
属性仅检查端口值是否等于方案的默认值,而不是 IIS 中的绑定(bind)。
- 是的,http://www.mysitename.com 也是如此。 ,在端口 80 上
- 不,http://www.mysitename.com:12345 将为假在端口 12345 上
- 不完全是,您的示例是正确的,如果您使用
http
方案检查 URI:Request.Url.Port == 80//这对于 HTTPS 来说是错误的,因为示例。
您可以使用 Uri.Scheme
属性检查方案(Request.Url
是 Uri
的实例)。
关于c# - Request.Url.IsDefaultPort 是如何确定的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28047632/