1

私は学生インターンで、顧客サポート Web ページを再設計する必要があるプロジェクトを割り当てられました。私は ASP を初めて使用するので、コードを MVC 4 に移行するように依頼されたので、将来のプロジェクトのためにそれを学びます。

Web ページには、カスタム クラスを使用したフォーム認証がMembershipProviderあり、 .aspx ファイル内で直接定義されたクエリでRoleProviderデータが表示されます。asp:SqlDataSource

私が学んだように、MVC のポイントは、フロントエンド (ビュー)、コントローラー、およびバックエンド (モデル、db アクセス) を分離することです。私はそれに向けていくつかの進歩を遂げましたが、認証に問題があります。MembershipProvider明示的および初期化を使用してログインを有効にすることができましたRoleProvider(これは、Web.configで構成されているように自動的に行われる必要があります)。を呼び出して、MembershipProvider.ValidateUser()ユーザーのFormsAuthentication.RedirectFromLoginPage()詳細を確認し、ユーザー名を保存して、ナビゲーション時に保存します。

WebSecurityこれは機能しますが、メソッドのすべての機能が削除され、特定の承認も削除されます。たとえば[Authorize(Roles = "...")]、期待どおりに機能せず、ロールを承認しません。Visual Studio の MVC サンプル プロジェクトはユーザー認証に使用されますが、クラスを拡張してそのメソッドをオーバーライドしSimpleMembershipProviderた場合と同じ方法でカスタム認証を実装する方法に関するプロジェクトやチュートリアルは見つかりませんでした。MembershipProvider

問題は、他のサービスにリンクされている多くのユーザーを持つ T-SQL データベースが既に存在することです。そのため、明らかにそれを変更したり、新しいデータベース/テーブルを作成したりすることはできません。私が見たプロジェクトはデータベースをゼロから作成しますがWebSecurity、既存のデータベースを使用してカスタム認証/承認を使用するプロジェクトは見つかりませんでした。

WebSecurityの代わりに実装する方法を確認できるプロジェクトまたはチュートリアルへのアドバイス、例、またはリンクをお願いしたいと思いますFormsAuthentication。すでに述べたように、私はすでに完全に機能するMembershipProviderandを持っておりRoleProvider、それを信じてSimpleMembershipProviderおりSimpleRoleProvider、同様のメソッドを持っているので、この部分はそれほど難しくありません。また、Webforms と MVC を混在させたくありません。純粋な MVC アプリケーションが必要です。

私は ASP.NET MVC 4 を C# と Razor エンジン、T-SQL と LINQ to SQL でデータベース アクセスに使用しています。

4

1 に答える 1

1

私の経験では、古いページを Web フォームから MVC に移行するときに、最初は Web フォーム ページだったことを「忘れる」必要があります。

ヘルプリソースのリクエストにもっと直接答えるには、これが役立つかもしれません: http://kylehodgson.com/2013/01/08/asp-netmvc-web-security-basics-csrf/

于 2013-08-13T18:36:16.073 に答える