Asp.net web api WebAPI 2安全路由参数
我不想在API路由参数中传递登录的用户ID。 例如,有一个WebAPI[GET或POST]端点'api/getUserDetails/{id}'。此id被传递到另一层以获取用户数据Asp.net web api WebAPI 2安全路由参数,asp.net-web-api,actionfilterattribute,Asp.net Web Api,Actionfilterattribute,我不想在API路由参数中传递登录的用户ID。 例如,有一个WebAPI[GET或POST]端点'api/getUserDetails/{id}'。此id被传递到另一层以获取用户数据 public RestResult getUserDetails(int uID) { int uID = getFromHeaderCookie(); var userDetails = someService.GetUserDetail(uID); return userDetails; } 此处
public RestResult getUserDetails(int uID)
{
int uID = getFromHeaderCookie();
var userDetails = someService.GetUserDetail(uID);
return userDetails;
}
此处id作为路由参数传递,通过更改id值,任何人都可以看到其他用户的数据
所以现在我希望url应该类似于“api/getUserDetails”,并且我正在从登录时保存的标题Cookie中读取Id。使用ActionFilters,我可以设法获取Id
public RestResult getUserDetails( )
{
int uID = getFromHeaderCookie();
var userDetails = someService.GetUserDetail(uID);
return userDetails;
}
这是工作,但看起来不好,因为有其他方法,我想保护用户ID。
有没有办法删除intuid=getFromHeaderCookie()代码>并使用一些自定义模型绑定器在控制器中注入用户ID
提前感谢您可以尝试Oauth,并从中获取用户信息,只需在请求url时添加授权(如Bear AccessToken)