2011-02-27 5 views
1

openid 개념을 구현하려하지만 실패했습니다. 나는 다른 견본 양식 인터넷을 시도하고 그들을 실행합니다. 내가 달릴 때 그들은 공급자에 대한 자동 치료를 요청합니다. Gmail을 선택하면 Gmail 사이트로 리디렉션됩니다. 이메일과 비밀번호를 입력하고 제출합니다. 대신 성공적인 로그인 페이지로 리디렉션됩니다. 나를 로그인 페이지로 리디렉션하고 로그인 실패 사례가 실행됩니다. 한 가지 더 Gmail Gmail 계정을 열었을 때 열었습니다. 나는 상태가 실패한 이유를 모른다. 샘플 i의 코드 중 하나가 시도했습니다.case AuthenticationStatus.Failed : asp.net을 사용하는 openid에서

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(); 
    } 
} 

답변

관련 문제