新しいアプリケーションを起動していて、asp.net MVC 4を使用しようとしています。ネットワークインフラストラクチャがセットアップされている方法は、MVCアプリケーションがデータベースに直接アクセスできないことを意味します。代わりに、すべてのデータを取得するためにWCFWebサービスにアクセスします。これは、ユーザー名/ユーザーの詳細のリストがWCFWebサービスを介してアクセスされることを意味します。RSyncを使用してデータを自分のサイトにプッシュするので、RSyncにはセッションが認証されているかどうかを確認するコマンドがあるため、組み込みの認証機能を利用したいと思いました。
if (Context.User.Identity.IsAuthenticated)
だから私の主な質問は、データベースの代わりにウェブサービスを使用して認証情報を設定するにはどうすればよいですか?テンプレートが以下を使用していることに気づきました。
WebSecurity.Login(model.UserName, model.Password, persistCookie: model.RememberMe)
ただし、これは、次のコードでデータベースにリンクされているためです。
WebSecurity.InitializeDatabaseConnection("DefaultConnection", "UserProfile", "UserId", "UserName", autoCreateTables: true);
したがって、WebSecurity.loginメソッドをオーバーライドできない限り、このメソッドを使用してそれを行うとは思いませんか?他のすべてのWebセキュリティ方法?
私はこれが正しい道だとは思いません。代わりに、独自のセキュリティクラスを作成し、ユーザーオブジェクトを返すLogin(username、password)という静的メソッドを持つUsersモデルを作成する必要があると思います。しかし、どういうわけか、mvc(httpセッション)ユーザーをログインに設定したいと思います。これにより、Authorize属性を使用したときに機能するようになります。httpセッションユーザーを認証済みに設定するにはどうすればよいですか?