【发布时间】:2009-10-21 14:47:25
【问题描述】:
实际上,我有一个应用程序正在使用 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=postedUsername,password=postedPassword)] 还有,我怎样才能使函数 ValidateAsClient 正常工作?
我希望这很容易理解 提前致谢
【问题讨论】:
标签: asp.net-mvc post httprequest actionfilterattribute