如何在不进入.Net的openid站点的情况下传递用户为openid提供的密码?

0 c# asp.net openid dotnetopenauth

我使用以下代码.

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();  
Run Code Online (Sandbox Code Playgroud)

上面的行进入openid站点进行身份验证.但我想在不进入openid站点的情况下进行身份验证.能帮帮我吗.谢谢

Dav*_*d M 18

如果我理解正确,您要做的是在您的站点上捕获OpenID用户名和密码,然后在后台将它们传递给OpenID进行身份验证.你没有看到这是一个非常糟糕的主意吗?如果OpenID使这成为可能,我会停止使用它们.我不希望他们为客户端应用程序提供获取用户名和密码的功能,非常感谢... !!!!


ale*_*pas 9

OpenID是以这种方式构建的,以防止依赖方获取密码.

此外,用户名+密码不是用户登录OpenID的唯一可能方式

例如,我的OpenID没有密码,它有证书+验证,我的后备有用户名+密码+ Yubikey OTP登录.

所以,有效......不可能按照你想象的方式使用这个问题,因为密码可能不是OpenID的一部分,或者不足以启用登录.