2012-06-24 118 views
1

嗨,在AuthorizeAttribute中获取发布数据?

我对让用户的动作,如果数据不进行验证,然后我需要重定向到另一个动作之前验证一些数据。

问题是我如何获得从AuthorizeAttribute内发送到操作的发布数据?

+0

只是所以我明白...你想要在你的控制器上接收一个带有动作的POST请求,确保这个模型(从你的HTTP POST请求表单集合中提取)是有效的。如果模型无效,那么将用户重定向到另一个动作? –

回答

0

我不确定这是不是您要求的内容,但是这会让您访问MyAuthorizeAttribute内的请求数据。

[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = true, Inherited = true)] 
public class MyAuthorizeAttribute : FilterAttribute, IAuthorizationFilter 
{ 
    public void OnAuthorization(AuthorizationContext filterContext) 
    { 
     var httpContext = filterContext.RequestContext.HttpContext; 
     var request = httpContext.Request; 
     // do stuff with request 
    } 
} 

然后,您可以获取请求中发送的任何数据。

+0

好吧,我发现它在httpContext.Request.Form下,但我不会将值作为viewObject,而是我将不得不查看字典以获取稍后分析到视图类中的数据? – Banshee

+0

是的,您可以从'httpContext.Request.Form'获得表单值(作为'NameValueCollection'),或者您可以使用'httpContext.Request.QueryString'从QueryString获取值(也可以作为NameValueCollection) –

+0

好吧没有办法将数据解析到视图对象中? – Banshee