2012-11-20 9 views
5

मैं मौजूदा वेब फॉर्म साइट के साथ सर्विसस्टैक को एकीकृत करने की कोशिश कर रहा हूं। साइट डेटाबेस प्रमाणीकरण तर्क सहित कुछ कस्टम प्रमाणीकरण तर्क के साथ फॉर्म प्रमाणीकरण का उपयोग करती है।सर्विसस्टैक से फॉर्म प्रमाणीकरण का लाभ उठाने का सबसे साफ तरीका क्या है?

मैं उसी तंत्र का उपयोग करके सर्विसस्टैक कॉल कैसे सुरक्षित कर सकता हूं? docs पढ़ना, ऐसा लगता है कि मुझे एक कस्टम ऑथ प्रदाता लिखना चाहिए जो डेटाबेस जांच करने के लिए CredentialsAuthProvider से विरासत में मिलता है और प्रत्येक अनुरोध के लिए AuthenticateAttribute लागू करने के लिए एक अनुरोध फ़िल्टर जोड़ें। एक बार प्रमाणित होने के बाद, मुझे फॉर्म ऑथ टिकट सेट करने की भी आवश्यकता है, और प्रत्येक अनुरोध पर टिकट की जांच करें? मैं उन चीजों को कहां करूंगा?

क्या मुझे कुछ याद आ रही है? क्या कोई बेहतर दृष्टिकोण है?

उत्तर

6

सेवास्टैक के ऑथ प्रदाता के साथ एमवीसी फॉर्म प्रमाणीकरण को एकीकृत करने के उदाहरण के लिए CustomAuthenticationMvc उपयोगकेस प्रोजेक्ट देखें।

विशेष रूप AccountController.Login() विधि दिखाता है कि कैसे MVC से ServiceStack कॉल करने के लिए: "उपयोगकर्ता नहीं मिला," "जाने से रोक दिया," आदि में प्रयोग कि समर्थन करने के लिए संभव है:

[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

मेरे प्रमाणीकरण तर्क से अधिक मान लौट सकते हैं एक 'CredentialAuthProvider'? – Daniel

+1

यह संभव है, लेकिन अभी तक ऐसा करने में कोई भी योगदान नहीं है :) – mythz

संबंधित मुद्दे

 संबंधित मुद्दे