1

この問題に役立つものは何も見つかりませんでした。以前はWebアプリケーションで認証を使用していませんでした。クッキーの有無に関わらず、私にとっては新しいものです。MVC3 - SQL Serverアカウントで認証

認証用にSQL Serverアカウントを使用する既存の(Web以外の)プログラムがあります。今、MVC3プロジェクトでも同じことをしたいと思います。

すべてのユーザーは、データベース内で同じ権限を持ちます。 (ウェブ以外の)プログラムは、権利自体を処理します。 (SQLアカウントを使用して)正常にログインすると、ログイン名はデータベース内のエンティティにマップされ、ユーザーIDを取得して適切な管理を行うことができます。ユーザー "admin"がログインしている場合、ユーザーID 4711を取得し、さらにいくつかの入力フィールドなどを表示し、他のユーザーの権限は少なくなります。

これは可能ですか?

それ以外:認証を保存するにはどのような方法が最適ですか?

ありがとうございます。

答えて

0

一般的に(MVCに限定されない)Asp.Netには、認証を管理する組み込みの方法があります。

これはMembershipProvider、RoleProvider、およびPrincipalProviderによって行われます。あなたは詳細についてはそれらをグーグルすることができます。

既存のスキーマに対してユーザーの資格情報をチェックする必要があるシナリオでは、基本クラスから派生した独自のカスタムMembershipProvider(および必要に応じてRoleProviderおよび/またはPrincipalProvider)を実装するだけで済みます。

カスタムプロバイダ内では、ドメイン固有のコードで署名メソッドを実装します。

最後に、カスタムプロバイダをweb.configのデフォルトに登録するだけで、設定済みです。あなたのアプリはデフォルトのメンバーシップAPIを使用してユーザーとマネージャの資格情報を認証できます。

+0

"Pro ASP.NET MVC 3 Framework"という本のプロバイダについては読んでいますが、それに慣れることはできません。問題は次のとおりです。資格情報がスキーマ内に存在しません。それらはSQL Serverアカウントです。私は認証のためにそれらを使用する方法を知らない。それともあなたの答えが間違っていたのですか? – Sleepwalker

+0

さて、あなたは間違っています:) MemberhipProviderは単なる基本クラスです:それから派生するので、実装するすべてのメソッドシグネチャがあります。これらのメソッドの中には、必要なコードを書くことができます。それは、データベース上のクエリである必要はありません、それは何でもかまいません。あなたの場合は、SQL Serverアカウントと対話するコードを記述します。あなたが基本クラスの契約を尊重する限り、あなたは大丈夫です。 –

+0

ああ、ありがとう。 "あなたの場合は、SQL Serverアカウントとやりとりするためのコードを記述します"。それがポイントです。私はそれを行う方法を一つの手がかりがありません(そして、それをglobal.asaxに実装し、クッキーなどで保存します)。あなたは良い出発点を知っていますか? – Sleepwalker

0

DB構造がすでに決定されている場合は、データベースにアクセスする独自のMembershipProviderを作成できます(http://msdn.microsoft.com/en-us/library/f1kyba5e.aspxおよびhttp://www.codeproject.com/KB/aspnet/WSSecurityProvider.aspxを参照)。

DB構造に柔軟性がある場合は、ASP.NETの組み込みSqlMembershipProvider(http://codehighstreet.com/Articles/overview_of_membership_and_installing_sql_membership_provider-part_1/overview_of_membership_and_installing_sql_membership_provider-part_1.aspxを参照)を使用できます。その後、テーブルとインデックスを作成するSQLスクリプトを実行する必要があります。これはMVC 3で動作します。

+0

こんにちは、Matteos Moscasの答えと同じです:「Pro ASP.NET MVC 3 Framework」という本のプロバイダについては読んでいますが、それに慣れることはできません。問題は次のとおりです。資格情報がスキーマ内に存在しません。それらはSQL Serverアカウントです。私は認証のためにそれらを使用する方法を知らない。それともあなたの答えが間違っていたのですか? – Sleepwalker

関連する問題