2012-05-29 5 views
1

사용자가 Google 프로필로 로그인하면 해당 사용자를 홈 페이지로 리디렉션하려고 시도하지만 default.aspx로 리디렉션됩니다.DotNetOpenAuth 홈페이지로 리디렉션

아래 코드에서 반환되는 행은 리디렉션을 시도하는 데 사용됩니다.

[System.Web.Mvc.AcceptVerbs(HttpVerbs.Post)] 
public ActionResult Logon(string loginIdentifier) 
{ 
    if (!Identifier.IsValid(loginIdentifier)) 
    { 
     ModelState.AddModelError("loginIdentifier", "The specified login identifier is invalid"); 
     return View(); 
    } 
    else 
    { 
     var openId = new OpenIdRelyingParty(); 
     IAuthenticationRequest request = openId.CreateRequest(Identifier.Parse(loginIdentifier)); 

     // Require some additional data 
     request.AddExtension(new ClaimsRequest 
     { 
      BirthDate = DemandLevel.NoRequest, 
      Email = DemandLevel.Require, 
      FullName = DemandLevel.Require 
     }); 

     request.AddCallbackArguments("http://localhost:5977/Home/About", "http://localhost:5977/Home/About"); 
     return request.RedirectingResponse.AsActionResult(); 
    } 
} 

감사합니다. 감사합니다.

+0

나는 이것을 알아낼 수 있었지만, 걱정할 필요가 없었습니다! –

+1

후손을 위해 자신의 답변을 올리면이 질문에 대한 다른 사람들이 알아낼 수 있습니다. –

답변

4

콜백 인수를 추가해도 로그인이 완료 될 때 사용자가가는 위치가 제어되지 않습니다. 궁극적으로이 대신 SetAuthCookie를 사용하여 수동으로 리디렉션 RedirectFromLoginPage 전화 컨트롤러에서 재정의 할 수

<authentication mode="Forms"> 
     <forms defaultUrl="/myhomepage"/> 
    </authentication> 

: 오히려, Web.config의 기본 리디렉션 동작을 설정합니다. 그러나 일반적으로 web.config 파일에 올바른 홈 페이지 URL이 나열되어 있어야하며,이 경우 올바른 결과가 발생합니다.

+0

이것도 작동합니다! 궁극적으로 나는 오버로드되지 않은 로그온 기능에서 가지고 있던 switch 문에서 홈 페이지로 리다이렉트했다. 리디렉션 ("홈"); –

+0

http://www.dotnetopenauth.net/developers/help/configuration-options/에서이 web.config 요소가 보이지 않습니다. - config 요소는 어디에 두어야합니까? –

+1

[ASP.NET 폼 인증 설정] (http://msdn.microsoft.com/en-us/library/532aee0e(v=vs.100) .aspx)이기 때문에 dotnetopenauth docs에 문서가 표시되지 않습니다. . –

관련 문제