用户使用他们的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();
}
}
任何帮助将不胜感激,谢谢!
答案 0 :(得分:4)
添加回调参数不会控制用户在登录完成时的去向。相反,web.config设置默认的重定向行为:
<authentication mode="Forms">
<forms defaultUrl="/myhomepage"/>
</authentication>
最终,您可以在控制器中覆盖此项,您可以调用RedirectFromLoginPage
来改为使用SetAuthCookie
,然后手动重定向。但是,您通常应该在web.config文件中列出正确的主页URL,在这种情况下正确的事情发生。