2012-07-16 72 views
3

我已经使用了[授权]属性在ASP.NET Web API方法中的ASP.NET Web API使用AuthorizeAttribute

[Authorize] 
public IEnumerable<User> GetAllUsers() 

从应用程序,我可以为我的用户已经是没有问题访问此方法认证。但是,有什么方法可以在调用时为此方法指定用户名和密码,以便我可以实现REST API?这是从独立应用程序或浏览器进行调用时的情况。

回答

2

我没有完全理解你的问题,但System.Web.Http.AuthorizeAttribute检查Thread.CurrentPrincipal以查看用户是否被授权。

可以明确授予用户权限,如果你想如下:

[Authorize(Users = "User1")] 
public IEnumerable<User> GetAllUsers() 

但认证过程完全取决于你。我会建议通过消息处理程序对用户进行身份验证,然后在那里填充Thread.CurrentPrincipal。然后,使用您认为适合您的应用程序的AuthorizeAttribute

+0

我实际上实现了基于方法头的自定义授权,所以任何第三方用户也可以被认证。 – 2012-08-02 05:10:05