वास्तव में मेरे पास एक ऐसा एप्लिकेशन है जो कुछ क्लाइंट जानकारी पुनर्प्राप्त करने के लिए वेब सेवा का उपयोग कर रहा है। तो मैं तरह मेरे ActionResult अंदर प्रवेश जानकारी को मान्य किया गया था:एएसपी.नेट एमवीसी - एक्शनफिल्टर एट्रिब्यूट पोस्ट डेटा को सत्यापित करने के लिए
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult ClientLogin(FormCollection collection)
{
if(Client.validate(collection["username"], collection["password"]))
{
Session["username"] = collection["username"];
Session["password"] = collection["password"];
return View("valid");
}
else
{
Session["username"] = "";
Session["password"] = "";
return View("invalid");
}
}
कहाँ Client.Validate() एक विधि है कि पोस्ट यूज़रनेम और पासवर्ड
लेकिन मैं पर उपलब्ध कराई गई जानकारी के आधार पर एक बूलियन देता है मेरे दिमाग को बदल दिया और मैं विधि की शुरुआत में उस अच्छा एक्शनफिल्टर एट्रिब्यूट्स का उपयोग करना चाहूंगा ताकि क्लाइंट.विलिडेट() सही हो, बस [अधिकृत] जैसा ही हो, लेकिन मेरे कस्टम webservice के साथ, तो यह केवल प्रस्तुत किया जाएगा, इसलिए मैं कुछ ऐसा है:
[AcceptVerbs(HttpVerbs.Post)]
[ValidateAsClient(username=postedUsername,password=postedPassword)]
//Pass Posted username and password to ValidateAsClient Class
//If returns true render the view
public ActionResult ClientLogin()
{
return View('valid')
}
और फिर ValidateAsClient अंदर मैं की तरह कुछ होगा:
public class ValidateAsClient : ActionFilterAttribute
{
public string username { get; set; }
public string password { get; set; }
public Boolean ValidateAsClient()
{
return Client.validate(username,password);
}
}
तो मेरी समस्या है, मैं वास्तव में नहीं जानता कि यह काम करने के लिए कैसे, क्योंकि मैं कैसे पोस्ट जानकारी पारित करने के लिए पता नहीं है [ValidateAsClient (username = postUsername, password = postPassword)] और साथ ही, मैं फ़ंक्शन ValidateAsClient को ठीक से कैसे काम कर सकता हूं?
मुझे आशा है कि इस अग्रिम
मुझे लगता है कि आप इसे पारित करने के बजाय 'filterContext.HttpContext.Request.Form' के साथ फ़ॉर्म संग्रह तक पहुंच सकते हैं। –
हेवीवेव के लिए धन्यवाद बहुत अच्छा, एक और सवाल: क्या इस मामले में ActionExecutingContext और ActionExecutedContext का उपयोग करने में कोई अंतर है? धन्यवाद – zanona
ActionExecutedContext को OnActionExecuted विधि में उपयोग किया जाना चाहिए, जो नियंत्रक की क्रिया विधि के बाद निष्पादित होता है। तो ActionExecutedContext में आपके पास निष्पादन के कुछ परिणामों तक पहुंच है। IntelliSense के साथ बस इसके साथ खेलते हैं। –