0

確認メールでメンバーシップ プロバイダーを設定しようとしています。Usermemb を使用して正常に登録されました。プロバイダー。

userProviderKey登録後、ユーザーの承認に使用される確認メールが送信されます。リンクは次のように送信されます

http://localhost:48992/Account/Verify/e37df60d-b436-4b19-ac73-4343272e10e8

ユーザーは、キー (providerUserKey) で送信されたリンクをクリックする必要があります。このキーはデバッグ モードでもパラメーターとして表示されないという問題があります。

// in debug providerUserKey is null
public ActionResult Verify(string providerUserKey)
{    
}

何が問題になる可能性がありますか?

4

4 に答える 4

1

グローバルasaxでルールを指定していない限り、URLは次のようになります。

http://localhost:48992/Account/Verify?providerUserKey=e37df60d-b436-4b19-ac73-4343272e10e8

上記の形式を使用する場合は、global.asaxに新しいルートをマッピングする必要があります

routes.MapRoute(
    // Route name
    "routename",
    // Url with parameters
    "Account/Verify/{providerUserKey}/",
    // Parameter defaults
    new { controller = "Account", action = "Verify" }
    );
于 2013-02-14T12:17:50.337 に答える
1

クエリを次のように変更してみてください

http://localhost:48992/Account/Verify?providerUserKey=e37df60d-b436-4b19-ac73-4343272e10e8

あなたActionResultはでこのパラメータを探していますURL

于 2013-02-14T12:18:08.183 に答える
1

デフォルトの MVC ルートは {Controller}/{Action}/{Id} であるため、パラメータ名が Id の場合に認識されます...

次のように変更すると機能します。

public ActionResult Verify(string id)
        {    
        }

それでもパラメーター名を変更したくない場合は、次のルーティングを global.asax ファイルに追加すると、正しく機能します。

routes.MapRoute("MyRouteName","{Controller}/{action}/{providerUserKey}")

パスが事前定義されているため、必要に応じてデフォルト値を渡すこともできます。乾杯

于 2013-02-14T12:22:11.397 に答える
1

Global.asax.cs ファイルのルート構成が次のようになっている場合:

          routes.MapRoute(
            "Default", // Route name
            "{controller}/{action}/{id}", // URL with parameters
            new { controller = "Home", action = "Index", id = UrlParameter.Optional });

idオプションとしてパラメーターがあることがわかります。したがって、クエリ文字列が認識された場合、id渡した値が含まれます。

あなたのために仕事をするために、idを に変更してください。providerUserKey

      routes.MapRoute(
            "Default", // Route name
            "{controller}/{action}/{providerUserKey}", // URL with parameters
            new { controller = "Home", action = "Index",providerUserKey=UrlParameter.Optional });

または、デフォルトのオプション パラメータをそのままにして、追加のクエリ文字列パラメータとしてid渡します。providerUserKey

次のように言います。

     @Html.Action("","",new { providerUserKey="e37df60d-b436-" })

それが役に立てば幸い

于 2013-02-14T12:25:12.460 に答える