0

MVC プロジェクトに OAuth2 を実装しています。現時点では、Google Api を使用しています。最初のステップは正常に機能し、コールバック URL は次のようなパラメーター コードで呼び出されています。

code=4/O89-dMqK-MHn8ynzsEawrpYPL80Y.Mu61gsIzfDMYOl05ti8ZT3adNQ17fgI

問題は、値にピリオド (.) が含まれているために MVC が無視していることです。それを機能させるために何ができるかを知る必要があります。ピリオドを削除すると、すべてが正常に機能しますが、Google から返される内容を制御することはできませんが、それを読み取ることができる必要があります。

次のようなカスタムルートを追加しようとしました:

public static void RegisterRoutes(RouteCollection routes)
{
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
    routes.IgnoreRoute("{*robotstxt}", new { robotstxt = @"(.*/)?robots.txt(/.*)?" });

    // default MVC route
    routes.MapRoute(
        name: "Default",
        url: "{controller}/{action}/{id}",
        defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
    ).RouteHandler = new CmsRouteHandler();

    // OAuth route
    routes.MapRoute(
        name: "OAuth",
        url: "OAuth/OAuth2Callback*"
    );

    // CatchAll route
    routes.MapRoute(
        "Catchall", // Route name
        "{*url}"
    ).RouteHandler = new CmsRouteHandler();
}

しかし、それは動作していないようです:(

乾杯、/r3plica

4

2 に答える 2

0

.NET 4.0 を使用している場合は、これをsystem.webweb.config ファイルのセクションに追加します。

<httpRuntime relaxedUrlToFileSystemMapping="true" />

それは問題を解決するはずです

于 2013-06-13T14:26:15.497 に答える
0

おそらく、この設定で修正されるはずです:
<system.webServer> <modules runAllManagedModulesForAllRequests="true"/>

于 2013-06-13T15:43:44.890 に答える