2011-03-15 3 views
0

나는 사용자에게 메일을 보내고 그의 계정을 활성화하기 위해 authetication 링크를 제공하려고하지만 링크를 하드 코딩하고 있습니다. 내가 하드 코드를 필요가 없습니다 어떤 방법이asp.net의 루트 디렉토리가 하드 코드가 아니어야합니다.

string url = "http://localhost:3876/User/Authenticate-User.aspx?emailID=" + emailfield; 

string msgBody = "<h3>Dear User</h3>" + "<p>Thanks for your interest, Kindly click on the URL below to authenticate</p><br>" + 
           "<a href='" + url + "'>Activate Link</a><br><br>" + 
           "\r\n<p>With Regards,<br>Team</p>"; 
+0

그래서 무슨 문제. 동적으로 ActivateLink를 생성하고 있습니다. 모든 사용자에게 동일한 메시지를 보내려면 괜찮습니다. 너는 그걸 어떻게 원해? –

답변

1
string ActivationLink=Request.Url.ToString().Substring(0, Request.Url.ToString().LastIndexOf('/')) + "/Authenticate-User.aspx?emailID=" + emailfield; 
+0

감사합니다. 두 답변 모두 투표했습니다. 감사합니다. – abhijit

+0

ActivationLink를 생성하는 파일이 Authenticate-User.aspx와 동일한 폴더에 있는지 확인하기 만하면됩니다. 그렇지 않으면 Server.MapPath를 사용하십시오. –

2

당신은 내가 당신이 할 수 있다는 점에서 가장 유연한은 "GetComponents"방법을 찾을 수있는 페이지가 Request.Url

을 사용하여 호스팅되는 위치에 대한 올바른 주소를 얻을 수 있습니다 Intellisense로 옵션을 아주 쉽게보십시오.

string serverAddress = "http://" + 
HttpContext.Current.Request.Url.GetComponents(UriComponents.Host, UriFormat.SafeUnescaped); 
if (!string.IsNullOrEmpty(HttpContext.Current.Request.Url.GetComponents(UriComponents.Port, UriFormat.SafeUnescaped))) { 
    serverAddress = serverAddress + ":" + HttpContext.Current.Request.Url.GetComponents(UriComponents.Port, UriFormat.SafeUnescaped); 
} 
+0

고마워요 !! 두 답변 모두 투표했습니다. 감사합니다. – abhijit

관련 문제