Asp.net FormsAuthentication.RedirectFromLoginPage不会将我返回到原始URL
我到达登录页面时,参数returnUrl设置为我所在的URL。然后,我通过OpenID DotNetOpenAuth登录,并调用FormsAuthentication.RedirectFromLoginPage。登录成功,但是我没有返回到原来的页面 我在注销时也遇到同样的问题-当我注销时,我不会停留在同一页面上,即使注销链接包含正确的returnUrl参数 我做错了什么 下面是代码片段。在调用RedirectFromLoginPage后,我返回EmptyResult,因为我真的不知道该做什么Asp.net FormsAuthentication.RedirectFromLoginPage不会将我返回到原始URL,asp.net,asp.net-mvc,redirect,openid,forms-authentication,Asp.net,Asp.net Mvc,Redirect,Openid,Forms Authentication,我到达登录页面时,参数returnUrl设置为我所在的URL。然后,我通过OpenID DotNetOpenAuth登录,并调用FormsAuthentication.RedirectFromLoginPage。登录成功,但是我没有返回到原来的页面 我在注销时也遇到同样的问题-当我注销时,我不会停留在同一页面上,即使注销链接包含正确的returnUrl参数 我做错了什么 下面是代码片段。在调用RedirectFromLoginPage后,我返回EmptyResult,因为我真的不知道该做什么 这
这是一个偶然的机会,但我最近在登录重定向方面遇到了一些奇怪的情况,因为匿名用户没有权限访问我的脚本文件夹。这导致重定向URL指向jquery脚本,因为这是用户最后一次尝试访问但未成功的地址。您有可以发布的代码吗?这可能会有帮助。另外,你被引导到哪一页?我怀疑/Home/Index,但请您确认。我确实被重定向到/Home/Index。我的站点中还没有javascript,我没有理由怀疑权限问题。我在VisualStudio2010 beta 2附带的内置web服务器中体验到了这一点。
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");
}
...