2016-12-15 4 views
7

私は電子メールで送信する絶対URLを生成するためにUrl.Actionを使用しています。リンクはコントローラ内で生成されます。ステージング/ PRODで、ドメイン/ HTTPSプロトコルせず、URLを使用してURLを指定すると、ドメインなしのリンクが返されます

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

が、私はこの結果を持っている:

何らかの理由
ConfirmLink = Url.Action(
    "ConfirmEmail", 
    "Account", 
    new { userId = user.Id, code }, 
    HttpContext.Request.Scheme 
) 

、地元では、私はこの結果を持って

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

私は"Microsoft.AspNetCore.Mvc": "1.1.0"でASP .NETコアを使用しています。

IISに公開されたアプリケーション。 Hostパラメータの追加

+0

あなたはプロトコルを指定せずに試したことがありますか? – ColinM

+0

@ColinM 'http:/// account/confirm-email?userId = 8&code = ...' –

+0

'Url.Action'はビューやコード内のどこにでも完全なURLを返しますか? – ColinM

答えて

0

試してみてください。

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

ホストであっても動作していません。 –

+0

デバッグコードを追加し、実稼働環境でHttpContext.Request.Host.Hostの値を確認できますか? – Ross

0

は私が前に同じ問題を持っていたし、以下のコードは私のために正常に動作します。

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

または手動

var ConfirmLink = $"{HttpContext.Request.Scheme}://{HttpContext.Request.Host}{Url.Action("ConfirmEmail", "Account")}"; 
関連する問題