2016-12-15 9 views
7

Bir e-posta göndermek için mutlak bir URL oluşturmak için Url.Action kullanıyorum. Bağlantı bir denetleyicide oluşturulur. evreleme/eşya, etki/https protokolü olmadanUrl.İletişim kuralı etki alanı olmadan bir bağlantı döndürüyor

http://localhost:5102/account/confirm-email?userId=10&code=CfDJ8JH5BJKUsPZDnCLwFc3HSEHfe9Fk00NHiJqk36VbvkDbbV39AI7HY5m9pXVItwYE9%2B9ElTcnBSZiDNQ%2FmO5lx1tSnuvDmhzdzGlCQCfPQVe%2B21Nw03uNuBWoO8HCVivqzfudti579bWiaLW6PuuQQimn449YymVjgV3R36HeQID26jTmAxizDTqOsF1%2FvQc5Zw%3D%3D 

ama bu sonucu var:

Nedense
ConfirmLink = Url.Action(
    "ConfirmEmail", 
    "Account", 
    new { userId = user.Id, code }, 
    HttpContext.Request.Scheme 
) 

, yerel, ben bu sonucu var

http:///account/confirm-email?userId=10&code=CfDJ8JH5BJKUsPZDnCLwFc3HSEHfe9Fk00NHiJqk36VbvkDbbV39AI7HY5m9pXVItwYE9%2B9ElTcnBSZiDNQ%2FmO5lx1tSnuvDmhzdzGlCQCfPQVe%2B21Nw03uNuBWoO8HCVivqzfudti579bWiaLW6PuuQQimn449YymVjgV3R36HeQID26jTmAxizDTqOsF1%2FvQc5Zw%3D%3D 

ASP .NET Core'u "Microsoft.AspNetCore.Mvc": "1.1.0" ile kullanıyorum.

IIS'de yayımlanan uygulama.

+0

Eğer Protokolü belirtmeden denediniz mi? – ColinM

+0

@ColinM Yine aynı sorun: 'http: /// account/confirm-email? UserId = 8 & code = ...' –

+0

'Url.Action' tüm URL’yi başka bir yerde, Görünümler'de veya kodda mı döndürüyor? – ColinM

cevap

0

deneyin ekleyerek Sunucu parametresi:

ConfirmLink = Url.Action(
    "ConfirmEmail", 
    "Account", 
    new { userId = user.Id, code }, 
    HttpContext.Request.Scheme, 
    HttpContext.Request.Host.Host 
) 
+0

Ev sahibi ile bile çalışmıyor. –

+0

Hata ayıklama kodunu ekleyebilir ve üretim ortamında HttpContext.Request.Host.Host'un değerini görebilirsiniz. – Ross

0

Daha önce aynı sorunu için kullanılan ve kod aşağıda benim için çalışıyor.

var ConfirmLink = Url.Action(
    "ConfirmEmail", 
    "Account", 
    new { userId = user.Id, code }, 
    HttpContext.Request.Scheme, 
    HttpContext.Request.Host.Value //HttpContext.Request.Host.ToString() 
) 

veya el

var ConfirmLink = $"{HttpContext.Request.Scheme}://{HttpContext.Request.Host}{Url.Action("ConfirmEmail", "Account")}"; 
İlgili konular