Mặc dù tôi đã quen với việc sử dụng Nhà cung cấp thành viên ASP.Net tiêu chuẩn cho các ứng dụng web MVC mới, tôi đã nhận được một cú đá ra khỏi việc sử dụng RavenDb gần đây nhưng tôi vẫn không tin rằng tôi có một nắm bắt về thực hành tốt nhất để triển khai xác thực người dùng và ủy quyền vai trò.Làm cách nào để xác thực và ủy quyền được triển khai bằng RavenDb trong ứng dụng MVC?
Code tôi đã thay thế các phương pháp đăng ký và đăng nhập của tôi với trong AccountController trông giống như sau:
[HttpPost]
public ActionResult Register(RegisterModel model)
{
if (ModelState.IsValid)
{
using (IDocumentSession Session = DataDocumentStore.Instance.OpenSession())
{
Session.Store(new AuthenticationUser
{
Name = Email,
Id = String.Format("Raven/Users/{0}", Name),
AllowedDatabases = new[] { "*" }
}.SetPassword(Password));
Session.SaveChanges();
FormsAuthentication.SetAuthCookie(model.UserName, createPersistentCookie: false);
// ...etc. etc.
[HttpPost]
public JsonResult JsonLogOn(LogOnModel model, string returnUrl)
{
if (ModelState.IsValid)
{
using (IDocumentSession Session = DataDocumentStore.Instance.OpenSession())
{
book Ok = Session.Load<AuthenticationUser>(String.Format("Raven/Users/{0}", Username)).ValidatePassword(Password);
FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe);
// etc...
Tôi đã nhìn thấy mã Provider RavenDb viên rằng một số người đã được tham chiếu trong bài viết tương tự hoặc các câu hỏi, nhưng dường như có một số người cho rằng điều này vượt lên trên và tận dụng một API không hiệu quả cho một kho lưu trữ dữ liệu mà không cần hầu hết những gì được cung cấp bên trong nó.
Vậy chiến lược thiết kế/kiến trúc tốt nhất cho xác thực RavenDb là gì (không phải cho OAuth, nhưng Xác thực Mẫu) và tôi có đang sủa cây đúng không?
Tôi đã cung cấp nhà cung cấp (beta) cho RavenDb tại đây: https://github.com/jgauffin/griffin.mvccontrib/tree/master/source/Griffin.MvcContrib.RavenDb Nó cũng có sẵn dưới dạng gói gói: ' griffin.mvccontrib.ravendb' Cách sử dụng: https://github.com/jgauffin/griffin.mvccontrib/wiki/Membershipprovider – jgauffin
Cảm ơn. Tôi đã nhìn thấy một vài cách tiếp cận vấn đề này và Ayende cũng có các gói (như phần mở rộng, nói lỏng lẻo) để giải quyết auth. Tôi đã viết blog những phát hiện của mình ở đây: http://mytechworld.officeacuity.com/index.php/2012/07/authentication-and-authorization-in-mvc-projects-using-ravendb –