'u kullanırken ReturnUrl parametresini ayarlar Bir ASP.NET MVC projesinde, bir sınıfı veya yöntemi [Authorize] ile süslediğinizde ve yetkilendirme başarısız olduğunda, site otomatik olarak oturum açma sayfasına yönlendirilir (web'de belirtilen loginUrl kullanılarak) .Config). Ayrıca, ASP.NET MVC çerçevesindeki bir şey orijinal isteğin URL'sini bir ReturnUrl parametresi olarak geçirir.İlk olarak AuthorizeAttribute
Bu ReturnUrl'in eklenmesinden sorumlu olan nedir? Proje şablonunda bunun için herhangi bir kod bulamadım. Ayrıca, ASP.NET yığınının source code'daki AuthorizeAttribute koduna da bir göz attım ama orada hiçbir şey bulamadım. Ayrıca "returnurl" için tüm ASP.NET yığın kaynak kodunu aramayı denedim, ancak hiçbir şey bulamadım.
Sormamın nedeni, bu işlemde bir hata keşfettiğimdi. Bunu yeni bir İnternet ASP.NET MVC projesi ile görebilirsiniz. FormsAuth zaman aşımını web.config dosyasında 1 dakikaya ayarlayın ve ardından oturum açın. Bir dakika bekleyin ve çıkış yapmayı deneyin. Bu giriş yaptıktan sonra 404 yol açar/hesap/kapatma bir ReturnUrl ile giriş sayfasına yönlendirir Kendi AuthorizeAttribute ile şimdilik bu çevrede çalıştık. Ancak
public class MyAuthorizeAttribute : AuthorizeAttribute
{
public override void OnAuthorization(AuthorizationContext filterContext)
{
base.OnAuthorization(filterContext);
if (filterContext.Result is HttpUnauthorizedResult)
{
string returnUrl = null;
if (filterContext.HttpContext.Request.HttpMethod.Equals("GET", System.StringComparison.CurrentCultureIgnoreCase))
returnUrl = filterContext.HttpContext.Request.RawUrl;
filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary()
{
{ "client", filterContext.RouteData.Values[ "client" ] },
{ "controller", "Account" },
{ "action", "Login" },
{ "ReturnUrl", returnUrl }
});
}
}
}
, ben istiyorum Kaynağa bir göz atıp, bu hatanın varlığını anlayabiliyor muyum, eğer gerçekten bir böcekse.
Sadece MVC'ye özgü olmayan form kimlik doğrulamasının bir parçası olduğunu düşünüyorum. Dönüş URL'si WebForm'da da bulunmaktadır. – Devesh
Bu olabilir - MVC ad alanı içinde AuthorizationAttribute olduğundan ve OnAuthorization'ı (yukarıda gösterildiği gibi) geçersiz kıldığından beri MVC ile ilgili bir şey var gibi görünüyor. –
http://msdn.microsoft.com/en-us/library/ff647070.aspx, size yardımcı olabilir – Devesh