私は学生インターンで、顧客サポート 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
。すでに述べたように、私はすでに完全に機能するMembershipProvider
andを持っておりRoleProvider
、それを信じてSimpleMembershipProvider
おりSimpleRoleProvider
、同様のメソッドを持っているので、この部分はそれほど難しくありません。また、Webforms と MVC を混在させたくありません。純粋な MVC アプリケーションが必要です。
私は ASP.NET MVC 4 を C# と Razor エンジン、T-SQL と LINQ to SQL でデータベース アクセスに使用しています。