2012-03-16 17 views

Trả lời

5

Hai cách "ra khỏi đỉnh đầu của tôi":

1 - Tuỳ chỉnh Action Filter mà chuyển hướng người dùng từ trang nếu họ đang đăng nhập

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 - đơn giản. kiểm tra trong phương thức hành động login nếu người dùng đã đăng nhập.

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

Tôi muốn tạo ra một thuộc tính có nguồn gốc [AuthorizeAttribute]. – Rhapsody

+0

@Rhapsody bạn có thể giải thích các bước để có Thuộc tính đó là gì? – updev

+0

@Xám bạn có nghĩa là ActionFilter trên Global.aspx? – updev

5

Các lối thoát dễ dàng được kiểm tra trong phương pháp điều khiển (đăng nhập/đăng ký) nếu người dùng được xác thực, và nếu nó là chuyển hướng người dùng đến trang web mà bạn muốn:

Something như thế này cho các trang đăng nhập (cùng với Đăng ký):

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

    return View(); 
} 
0

Bạn có thể kiểm tra thuộc tính User.Identity.IsAuthenticated và chuyển hướng chúng một cách thích hợp.

Các vấn đề liên quan