На самом деле у меня есть приложение, которое использует WebService для получения информации о некоторых клиентах.
Поэтому я проверял информацию для входа в свой 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 () - это метод, который возвращает логическое значение на основе информации, предоставленной для имени пользователя и пароля POST
Но я передумал и хотел бы использовать этот красивый ActionFilterAttributes в начале метода, чтобы он просто отображался, если Client.validate () возвращает true, точно так же, как [Authorize], но с моим пользовательским 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);
}
}
Так что моя проблема в том, что я не знаю точно, как заставить это работать, потому что я не знаю, как передать информацию POSTED в [ValidateAsClient (username = postsUsername, password = postsPassword)] а также как сделать так, чтобы функция ValidateAsClient работала правильно?
Надеюсь, это легко понять
Заранее спасибо