1

資格情報認証を正常に使用している状況がありますが、ユーザーの電子メール アドレスだけを使用して、サービス内から認証済みセッションを簡単に作成できるようにする必要がある場合があります。どうやってやるの?に似たものを探していると思いますFormsAuthentication.SetAuthCookie()が、見つかりませんでした。

ここまでが私の考えです。これを自分で構築する必要があると仮定すると、内部に次のように表示されCredentialsAuthProvider.TryAuthenticateます。

if (authRepo.TryAuthenticate(userName, password, out userAuth))
{
    session.PopulateWith(userAuth);
    session.IsAuthenticated = true;
    session.UserAuthId = userAuth.Id.ToString(CultureInfo.InvariantCulture);
    session.ProviderOAuthAccess = authRepo.GetUserOAuthProviders(session.UserAuthId)
        .ConvertAll(x => (IOAuthTokens)x);

    return true;
}

UserAuthこれは、からのオブジェクトを介して自分でブロック内にあることを実行できることを意味しているようですIUserAuthRepository.GetUserAuthByUserName()。ただし、セッションはここに保存されないため、これでは十分ではないと思います。逆方向に作業すると、Authenticateによって呼び出され、セッションの保存など、他のことが起こる場所TryAuthenticateを呼び出すことがわかりました。OnAuthenticatedOnAuthenticatedのインスタンスを解決して自分で呼び出すことはできますか?CredentialsAuthProvider

私は正しい軌道に乗っていますか、それともこれは完全に間違った方法ですか?

4

1 に答える 1