更改asp:基于子域的超链接navigationurl

时间:2017-01-24 16:20:19

标签: c# asp.net

我有两个站点的多个实例,DEV,QA,UAT-STAGING,UAT,PROD-STAGING和PROD。我有一个登录按钮,需要链接到安全门户。

因此,当在DEV上时,用户将转到dev.secure.com,QA,qa.secure.com,UAT(任一),uat.secure.com,PROD(任一),secure.com。

这是我的代码段。



           if (Request.Url.AbsoluteUri.Contains("dev."))
            {
                btn_login.NavigateUrl = "https://dev.secure.com";
            }
            else if (Request.Url.AbsoluteUri.Contains("qa."))
            {
                btn_login.NavigateUrl = "https://qa.secure.com";
            }
            else if (Request.Url.AbsoluteUri.Contains("uat"))
            {
                btn_login.NavigateUrl = "https://qa.secure.coma";
            }
            else
            {
                btn_login.NavigateUrl = "https://secure.com";
            }




这似乎有效,但这是最好的方法吗?我曾考虑过web.config中的重写规则,但首先从这开始。

1 个答案:

答案 0 :(得分:0)

有很多方法可以实现这一目标。

我在您的解决方案中看到的主要问题是,如果您的网址是:

https://qa.secure.com/somethingdev.aspx 要么 https://QA.secure.com/somethingdev.aspx

它没有按预期工作。

如果你想这样做,你至少应该只讨论Uri

Host部分
Request.Url.Host.ToLower().Contains("dev.")

我在这种情况下的方法是将登录URL作为配置参数存储在web.config或自定义配置文件或db