DotNetOpenAuth и Google - PullRequest
       2

DotNetOpenAuth и Google

2 голосов
/ 02 августа 2010

У меня есть следующий код:

protected void Page_Load(object sender, EventArgs e)
{
    var openId = new OpenIdRelyingParty();
    HttpContext httpContext = HttpContext.Current;

    var headers = new WebHeaderCollection();
    foreach (string header in httpContext.Request.Headers)
    {
        headers.Add(header, httpContext.Request.Headers[header]);
    }

    string requestUrl = string.Format("http://localhost:12345/Login/{0}",
                                       httpContext.Request.Url.Query);

    var requestInfo = new HttpRequestInfo(httpContext.Request.HttpMethod,
                                            new Uri(requestUrl),
                                            httpContext.Request.RawUrl, headers,
                                            httpContext.Request.InputStream);

    var response = openId.GetResponse(requestInfo);

    if (response != null)
    {
        ClaimsResponse claimResponse = response.GetExtension<ClaimsResponse>();
        lblUser.Text = claimResponse.FullName;
        if (response.Exception != null)
        {
            lblError.Text = response.Exception.Message;
        }
    }
}

protected void btnTest_Click(object sender, EventArgs e)
{
    try
    {
        using (OpenIdRelyingParty openId = new OpenIdRelyingParty())
        {
            string identifier = @"https://www.google.com/accounts/o8/id";


            var request = openId.CreateRequest(identifier,
                                                new Realm("http://localhost:12345/"),
                                                new Uri("http://localhost:12345/Login/"));

            request.AddExtension(new ClaimsRequest
                                        {
                                            Email = DemandLevel.Require
                                        });

            request.RedirectToProvider();
        }
    }
    catch (Exception ex)
    {
        // TODO: log exception
        throw;
    }
}

Когда я выполняю код, пользователь аутентифицируется, но ClaimsResponse имеет значение null.
Код отлично работает с MyOpenId .

Любая помощь будет оценена.

1 Ответ

0 голосов
/ 02 августа 2010

Информация здесь полезна: Извлечение информации о пользователях OpenId (заявок) от поставщиков

Золотой слепок, который вам, вероятно, не хватает в вашем приложении, - AXFetchAsSregTransform .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...