Microsoft ASP.NET MVC 4 ApiController
を使用して、簡単なRESTful Webサービス(GETのみ)を作成しました。Microsoft MVC 4、APIControllerと適切なRESTfulログインWebサービス
今、私はサービスの認証システムを実装する正しい方法を探しています。 FormsAuthentication
を組み込みにしたくないのは知っています.WSを使っているすべてのアプリケーションに一意のログインページを持たせたくないからです。さらに、RESTfulなパラダイムを壊し、リダイレクトを強制し、クライアントに適切な401
ステータスコードを通知しません。
だから私は私のweb.config
から次の行を削除無効FormsAuthentication
を持っている:
<authentication mode="Forms">
<forms loginUrl="~/Account/Login" timeout="2880" />
</authentication>
と、次の追加:
<modules runAllManagedModulesForAllRequests="true">
<remove name="FormsAuthentication" />
</modules>
を私はすでに、ユーザーのログインを管理するためのApiController
を持って、その基本的にチェック資格は自分のデータベースに対して返され、ユーザーが返されます。資格情報が有効でない場合は401
が返されます。
Membership
とAuthorization
APIを実装する必要があることを読んだことがありますが、最初からやり直すのに役立つものは何も見つかりませんでした。 アイデアはありますか?データベース上でクッキーや認証コードを管理する必要がありますか、それとも私のためにはFormsAuthentication
と同じクラスですか?
最初の例、BasicAuthenticationが必要です。しかし、私は、authcodeを格納する方法があるかどうかはまだ理解していません(authcodeとしてクライアントにユーザー名とパスワードを送信しません)。 – frapontillo
「authcodeを保存する方法」という意味を理解しているかどうかはわかりません。 authcodeについてのあなたの説明は何ですか?基本認証では、送信されたユーザー名/パスワードをエンコードし、もう一方の端でデコードします。基本認証でHTTPS/SSL/TSLを使用して、電文全体のメッセージを暗号化することもできます。 DBにパスワードを格納するとき、私は常に格納されたパスワードの一方向の暗号化を使用します。次に、DB内の内容を比較する前に、ユーザーが入力したパスワードに対して同じ暗号化を使用します。 –
ログインごとに一時的な認証コードを作成し、データベースに格納したいと考えています。これはFormsAuthenticationと同じことだと思います。ログインしたユーザーに厳密にリンクされたセッション認証コードを作成します。 – frapontillo