DotNetOpenAuth重定向到主页

时间:2012-05-29 13:26:03

标签: asp.net-mvc-3 openid dotnetopenauth

用户使用他们的Google个人资料登录后,我会尝试将其重定向回主页,但是会一直重定向到default.aspx。

以下代码中返回上方的行是我尝试重定向的内容。

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

任何帮助将不胜感激,谢谢!

1 个答案:

答案 0 :(得分:4)

添加回调参数不会控制用户在登录完成时的去向。相反,web.config设置默认的重定向行为:

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

最终,您可以在控制器中覆盖此项,您可以调用RedirectFromLoginPage来改为使用SetAuthCookie,然后手动重定向。但是,您通常应该在web.config文件中列出正确的主页URL,在这种情况下正确的事情发生。