2010-01-05 61 views
1

我到达我的登录页面,参数“returnUrl”设置为我所在的URL。然后,我通过OpenID(DotNetOpenAuth)登录,并致电FormsAuthentication.RedirectFromLoginPage()。登录成功,但是我没有返回到原来的页面。FormsAuthentication.RedirectFromLoginPage不会让我回到orignal URL

我在注销时遇到同样的问题 - 注销时,即使注销链接包含正确的“returnUrl”参数,我也不会保留在同一页面上。

我在做什么错?

这是代码片段。我调用RedirectFromLoginPage回国后EmptyResult(),因为我真的不知道该怎么办(见this related question

using (var relayingParty = new OpenIdRelyingParty()) 
{ 
    var response = relayingParty.GetResponse(); 

    if (response == null) 
    { 
     // Stage 2: user submitting Identifier 
     var openId = Request.Form["openId"]; 
     relayingParty.CreateRequest(openId).RedirectToProvider(); 

     throw new Exception("Never gets here"); 
    } 

    // Stage 3: OpenID Provider sending assertion response 
    switch (response.Status) 
    { 
     case AuthenticationStatus.Authenticated: 
      var claimedIdentifier = response.ClaimedIdentifier; 
      var user = _userRepository.FindByOpenId(claimedIdentifier); 
      if (user != null) 
      { 
       // login 
       FormsAuthentication.RedirectFromLoginPage(user.Id.ToString(), false); 
       return new EmptyResult(); 

       // TODO - https://stackoverflow.com/questions/1991710/understanding-redirections-in-asp-net-mvc 
       // throw new Exception("Should never get here"); 
      } 
     ... 
+0

你有任何可以发布的代码吗?它可能有帮助。 – griegs 2010-01-05 22:31:56

+0

另外,你正在导向什么页面?我怀疑/ Home/Index,但请您确认。 – griegs 2010-01-05 22:47:33

+0

我确实重定向到/ Home/Index。 – ripper234 2010-01-05 23:02:28

回答

0

这是一个在黑暗中拍摄,但我最近经历了一些古怪的登录,因为重定向匿名用户对我的脚本文件夹没有权限。这导致redirecturl指向一个jQuery脚本,因为这是用户试图访问的最后一个地址,但没有成功。

+0

我的网站还没有JavaScript,我没有理由怀疑权限问题。我在Visual Studio附带的内置Web服务器(2010 beta 2)中体验到这一点。 – ripper234 2010-01-05 23:03:46

相关问题