1

我正在尝试实施 openid 概念但失败了。我尝试了不同的样本形式互联网并运行它们。当我运行时,他们要求我为提供者提供身份验证。假设我选择谷歌,他们将我重定向到 gmail 网站。我输入我的电子邮件和密码并提交。但不是将我重定向到成功的登录页面。它将我重定向到登录页面并说登录失败案例执行。当我打开它已经打开的 gmail 帐户时,还有一件事。我不知道为什么状态失败。这段代码是我尝试过的示例之一。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using DotNetOpenAuth.OpenId;
using DotNetOpenAuth.OpenId.RelyingParty;  

public partial class Login : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        OpenIdRelyingParty OIDRP = new OpenIdRelyingParty();
        IAuthenticationResponse str = OIDRP.GetResponse();
        if (str != null)
        {
            switch (str.Status)
            {
                case AuthenticationStatus.Authenticated:
                    NotLoggedIn.Visible = false;
                    Session["GoogleIdentifier"] = str.ClaimedIdentifier.ToString();
                    Response.Redirect("Home.aspx"); //redirect to main page of your website  
                    break;
                case AuthenticationStatus.Canceled:
                    lblMessage.Text = "Cancelled.";
                    break;
                case AuthenticationStatus.Failed:
                    lblMessage.Text = "Login Failed.";
                    break;
            }
        }  
    }

    protected void OpenLogin_Click(object src, CommandEventArgs e)
    {
        string str = e.CommandArgument.ToString();
        OpenIdRelyingParty openid = new OpenIdRelyingParty();
        var b = new UriBuilder(Request.Url) { Query = "" };
        IAuthenticationRequest req= openid.CreateRequest(str, b.Uri, b.Uri);
        req.RedirectToProvider();
    }  
}
4

1 回答 1

0

我有同样的问题。我的服务器上的时间只差了几分钟,而且票快到期了。

请参阅:DotNetOpenAuth 无法在 Live Server 上工作

于 2012-01-17T06:25:07.370 回答