2

リクエストごとの認証を強制しようとしていますが、を追加するとAuthFeatureSessionFeature自動的に追加され、認証結果がキャッシュされているように見えます (IUserAuthRepository.TryAuthenticate同じクライアントからのリクエストにまたがって複数の呼び出しが行われることはありません)。

SessionFeatureに追加されていることをコメントアウトしようとしましたAuthFeatureが、効果がないようです。セッションはまだ作成されていますか? また、AuthFeatureコンストラクターでは、セッション ファクトリに null を渡しますが、それでもセッションが作成されます。これにより、セッションが作成されないか、例外がスローされると思いますか? とにかく、私はこの分野を探求し続けますが、このプロジェクトを進めるには、組み込みの認証プロバイダーでリクエストごとの認証を行う方法を知る必要がありますか?

4

1 に答える 1

1

私たちのプロジェクトでは、単純な方法に進みます。

以下のものを作成します。

ベース認証クラス:

 public class TagAuth
    {
        /// <remarks/>
        public string agent { get; set; }

        /// <remarks/>
        public string sign { get; set; }

        /// <remarks/>
        public string ts { get; set; }

        /// <remarks/>
        public int seed { get; set; }
    }

すべてのリクエストの基本クラス:

 public class BaseRequest
    {
        /// <remarks/>
        public TagAuth auth { get; set; }
    }

モデル内のすべてのリクエストに BaseRequest クラスを使用します。

public class Cancel : BaseRequest
    {

        public long bid { get; set; }

    }

ServiceInterface を実装します。

public class CancelService : ServiceBase {

protected override object Run(Cancel request)
{
    SecurityManager.CheckAuthorization(request.auth); 
    return CancelRouter.Route(request);
}

}

しかし、ネイティブ サポートのリクエストごとの認証も興味深いものです。

于 2012-11-29T21:12:57.513 に答える