2012-11-20 25 views
5

Tôi đang cố gắng tích hợp ServiceStack với trang web Biểu mẫu web hiện có. Trang web sử dụng Xác thực Mẫu cùng với một số logic xác thực tùy chỉnh liên quan đến các cuộc gọi cơ sở dữ liệu, v.v.Cách sạch nhất để tận dụng Xác thực Mẫu từ ServiceStack là gì?

Làm cách nào để bảo đảm các cuộc gọi ServiceStack bằng cùng một cơ chế? Đọc docs, có vẻ như tôi nên viết một nhà cung cấp xác thực tùy chỉnh kế thừa từ CredentialsAuthProvider để kiểm tra cơ sở dữ liệu, v.v. và thêm bộ lọc yêu cầu để áp dụng AuthenticateAttribute cho mỗi yêu cầu. Tôi có cần phải đặt vé xác thực biểu mẫu, sau khi được xác thực và kiểm tra vé trên mỗi yêu cầu không? Tôi sẽ làm những thứ đó ở đâu?

Tôi có thiếu gì không? Có cách tiếp cận tốt hơn không?

Trả lời

6

Xem dự án CustomAuthenticationMvc UseCase để biết ví dụ về tích hợp Xác thực biểu mẫu MVC với Nhà cung cấp xác thực của ServiceStack.

Cụ thể phương pháp AccountController.Login() cho thấy làm thế nào để gọi ServiceStack từ MVC:

[HttpPost] 
[AllowAnonymous] 
[ValidateAntiForgeryToken] 
public ActionResult Login(LoginModel model, string returnUrl) 
{ 
    if (ModelState.IsValid) 
    { 
     var authService = AppHostBase.Instance.TryResolve<AuthService>(); 
     authService.RequestContext = CreateRequestContext(); 
     var response = authService.Authenticate(new Auth 
     { 
      UserName = model.UserName, 
      Password = model.Password, 
      RememberMe = model.RememberMe 
     }); 

     // add ASP.NET auth cookie 
     FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe); 

     return RedirectToLocal(returnUrl); 
    } 

    // If we got this far, something failed, redisplay form 
    ModelState.AddModelError("", 
     "The user name or password provided is incorrect."); 
    return View(model); 
} 
+0

lý xác thực của tôi có thể trả về nhiều giá trị: "không tìm thấy người sử dụng", "khóa", vv Có thể hỗ trợ rằng việc sử dụng một 'CredentialAuthProvider'? – Daniel

+1

Có thể, nhưng không có ai hỗ trợ để thực hiện điều đó :) – mythz

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