case AuthenticationStatus.Failed: в openid с использованием asp.net - PullRequest
1 голос
/ 27 февраля 2011

Я пытаюсь реализовать концепцию openid, но не удалось.Я пробовал другой пример интернет-формы и запускаю их.когда я бегу, они просят у меня аутентификацию для провайдера.Предположим, я выбрал Google, они перенаправили меня на сайт 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();
    }  
}

1 Ответ

0 голосов
/ 17 января 2012

У меня была такая же проблема. Время на моем сервере было отключено всего на несколько минут, и срок действия билета истекал.

См .: DotNetOpenAuth Не работает на Live Server

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