0

以下のコードを使用しています。

OpenIdRelyingParty createRelyingParty()
{
    OpenIdRelyingParty openid = new OpenIdRelyingParty();
    int minsha, maxsha, minversion;
    if (int.TryParse(Request.QueryString["minsha"], out minsha))
    {
        openid.Settings.MinimumHashBitLength = minsha;
    }
    if (int.TryParse(Request.QueryString["maxsha"], out maxsha))
    {
        openid.Settings.MaximumHashBitLength = maxsha;
    }
    if (int.TryParse(Request.QueryString["minversion"], out minversion))
    {
        switch (minversion)
        {
            case 1: openid.Settings.MinimumRequiredOpenIdVersion = ProtocolVersion.V10; break;
            case 2: openid.Settings.MinimumRequiredOpenIdVersion = ProtocolVersion.V20; break;
            default: throw new ArgumentOutOfRangeException("minversion");
        }
    }
    return openid;
}

OpenIdRelyingParty openid = createRelyingParty();  
IAuthenticationRequest request = openid.CreateRequest(openIdBox.Text); 

request.RedirectToProvider();  

上記の行は、openid サイトにアクセスして認証を取得します。しかし、私は openid サイトにアクセスせずに認証したいと考えています。助けてください。ありがとう

4

4 に答える 4

18

私の理解が正しければ、あなたがしようとしているのは、OpenID のユーザー名とパスワードをサイトで取得し、認証のためにバックグラウンドでそれらを OpenID に渡すことです。これは非常に悪い考えだと思いませんか?もし OpenID がこれを可能にしたら、私はその使用をやめるでしょう。クライアントアプリケーションが私のユーザー名とパスワードを取得する機能を提供してほしくありません。ありがとうございます...!!!!

于 2009-07-10T10:15:14.147 に答える
9

OpenID は、従属関係者がパスワードを取得するのを防ぐために、このような方法で構築されています。

さらに、ユーザーが OpenID にログインする方法は、ユーザー名とパスワードだけではありません。

たとえば、私の OpenID にはパスワードがなく、証明書と検証があり、フォールバックにはユーザー名とパスワードと Yubikey OTP ログインがあります。

したがって、事実上...この質問で想像したように機能することは不可能です.パスワードはOpenIDの一部ではないか、ログインを有効にするのに十分ではない可能性があるためです.

于 2009-07-10T10:27:04.183 に答える
3

OpenID を使用すると、識別と認証の責任を彼らに与えることになり、彼らはあなたに代わってそれを行います。コード内で認証と処理に使用される情報を確認したい場合、OpenID は適していません。

于 2009-07-10T11:55:35.817 に答える