Вы должны поместить ключ в конфигурации, что-то где-нибудь, потому что, когда вы думаете о своем веб-приложении, оно на самом деле не привязано к URL-адресу.Например:
http://localhost:1234/
http://yourMachineName:1234/
http://yourMachineName.domain.com:1234/
http://127.0.0.1:1234/
Это всего лишь несколько способов попасть на тот же сайт на localhost
.... что это?Та же проблема существует в производстве, десятки доменов или IP-адресов могут указывать на одно и то же веб-приложение, и оно использует заголовки хоста или, может быть, ничего не выделяет.Дело в том, что когда вне контекста запроса сайт не знает, с каким URL он идет, это может быть что угодно, просто нет отношения 1: 1.
Если вы в контексте запроса при отправке электронного письма, затем посмотрите на HttpRequest.Url
, это тип Uri
, и вы можете см. доступные свойства здесь .
Вы можете сделать что-то вроде этого:
var host = HttpContext.Current.Url.Host;
//generate your link using the host