2

私は次のことをしました:

VS 2012 でイントラネット テンプレートを使用して MVC 4.0 アプリケーションを作成し、WindowsAuthentication をオンに切り替えます。プロジェクトが開始され、ホームページが表示されます。

次に、References WebMatrix.WebData の下に追加し、Copy Local を true に設定しました。

アプリケーションを起動すると、要求された URL を示す 404 エラーが返されます: /login.aspx

奇妙ですね。

SimpleMembership Provider を使用したいのですが、DLL を参照することさえできない場合、これでは納得できません。

誰でも私を助けることができますか?

4

1 に答える 1

1

MVC4 イントラネット プロジェクト テンプレートは、次の web.config を提供します。

<authentication mode="Windows" />

何らかの理由で、MVC 4 イントラネット プロジェクト テンプレートから生成された Web アプリに Microsoft ASP.Net Web ページ 2 Nuget パッケージを追加するだけで、アプリケーション全体のルーティング動作が変更され、/login.aspx がデフォルトのルーティングになるようになります。コントローラー/アクションが指定されています。

これは、フォーム認証用に定義された defaultUrl のデフォルト値です。詳細については、 forms-Element の定義を参照してください。

次の 2 つのバイパスが機能します。

  1. 次のようなものを追加してルートマップを変更します

        routes.MapRoute(
            name: "LoginRedirect",
            url: "login.aspx/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );
    

    ルートテーブルに。

  2. 含むように web.config を変更します

    <authentication mode="Windows">
      <forms loginUrl="~/Home/Index" defaultUrl="~/Home/Index"/>
    </authentication>
    

ここで、フォーム要素は適切な開始ページを提供します。

どちらでも動作します。後者は私にはより快適に思えます。

于 2013-01-24T09:09:07.490 に答える