2012-03-16 12 views

Odpowiedz

5

Dwie drogi "z góry na głowie":

1 - niestandardowe Action Filter który przekierowuje użytkownika ze strony, jeśli są one rejestrowane w

public class RedirectAuthenticatedRequests : ActionFilterAttribute 
{ 
    public override void OnActionExecuting(ActionExecutingContext filterContext) 
    { 
     if(filterContext.HttpContext.Request.IsAuthenticated) { 
      filterContext.Result = new RedirectToRouteResult(
       new RouteValueDictionary(new { 
         controller = "SomeController", 
         action = "SomeAction" 
       } 
      )); 
     } 

     base.OnActionExecuting(filterContext); 
    } 
} 

2 - proste. sprawdź metodę działania login, jeśli użytkownik jest zalogowany.

if(Request.IsAuthenticated) return RedirectToAction("SomeOtherView"); 
+0

Ja bym stwórz atrybut Attribute [AuthorizeAttribute] w rzeczywistości. – Rhapsody

+0

@ Czy możesz wyjaśnić, jakie kroki należy podjąć, aby ten Atrybut? – updev

+0

@Xander masz na myśli ActionFilter na Global.aspx? – updev

5

łatwe wyjście jest sprawdzenie w metodzie kontrolera (login/register), jeśli użytkownik jest uwierzytelniony, a jeśli jest przekierowanie użytkownika do strony, którą chcesz:

coś takiego na stronie logowania (samo z rejestru):

// 
// GET: /Login/Index 
public ActionResult Index() 
{ 
    if(User.Identity.IsAuthenticated){ 
      //redirect to some other page 
      return RedirectToRoute("Home", "Index"); 
    } 

    return View(); 
} 
0

można sprawdzić właściwość User.Identity.IsAuthenticated i przekierować je odpowiednio.

Powiązane problemy