0

コントローラーで Callback メソッドを作成します。ソーシャル プロバイダーで Oauth 認証を使用しています。コールバックの URL を作成し、プロバイダーのクエリを送信すると、プロバイダーは次の URL を取得します。

http:// 127.0.0.1 :8080/OAuth/CallBack

しかし、このコンテキストでのこのドメイン - http://simple.com

現在のコンテキストとこのドメインを使用するには? デバッグ モードでは、プロジェクト名がローカル アドレスと一致するため、プロジェクトは正しく機能しました。

var helper = new UrlHelper(requestContext);
var actionCallback = helper.Action("CallBack", "OAuth", null, "http");
4

2 に答える 2

0

私はこれを意味します。ありがとう、私はすでに問題を解決しました。

 public Uri GetUri(Controller.HttpContext.Request request){
    var request = Controller.HttpContext.Request;
    string uriStr = "";

    uriStr = String.Format("{0}", request.GetApplicationAbsoluteUrl);

    // bad variant! but is some fix-stub
    return new Uri(uriStr+"OAuth/Callback");
}

public static string GetApplicationAbsoluteUrl(this HttpRequestBase request) {
    string forwardedHost;
    string appPath = request.ApplicationPath ?? String.Empty;

    if (appPath.Length > 0 && appPath[appPath.Length - 1] != '/')
        appPath += '/';

    var authority = request.Url.Host == "127.0.0.1" && (forwardedHost = request.Headers["X-Forwarded-Host"]) != null
                  ? forwardedHost
                  : request.Url.Authority;

    return String.Format("{0}://{1}{2}", request.Url.Scheme, authority, appPath);
}
于 2013-10-30T06:51:46.970 に答える