asp.net Identity 2.1中的文件夹授权
我在.net identity 2.1中搜索了访问文件夹或文件的基于角色的授权,但找不到,因为存在基于表单的授权asp.net Identity 2.1中的文件夹授权,.net,authorization,asp.net-identity,.net,Authorization,Asp.net Identity,我在.net identity 2.1中搜索了访问文件夹或文件的基于角色的授权,但找不到,因为存在基于表单的授权 <location path="Pictures"> <system.web> <authorization> <allow roles="Administrators"/> //Allows users in Admin role <deny users="*"/&g
<location path="Pictures">
<system.web>
<authorization>
<allow roles="Administrators"/> //Allows users in Admin role
<deny users="*"/> // deny everyone else
</authorization>
</system.web>
</location>
//允许用户担任管理员角色
//拒绝其他人
有没有办法在.net identity中实现此功能?您可以编写一个筛选器:
public class FilterStaticFilesAttribute : AuthorizationFilterAttribute
{
public override void OnAuthorization(HttpActionContext actionContext)
{
var request = actionContext.Request;
if (request.RequestUri.LocalPath.StartsWith("\Pictures", System.StringComparison.InvariantCultureIgnoreCase))
{
if (!request.GetOwinContext().Authentication.User.IsInRole("Administrators"))
{
actionContext.Response.StatusCode = HttpStatusCode.Forbidden;
return;
}
}
base.OnAuthorization(actionContext);
}
}
在WebApiConfig中注册。注册:
public static void Register(HttpConfiguration config)
{
config.Filters.Add(new FilterStaticFilesAttribute());
}
其作用:所有请求都将通过已注册的筛选器。在筛选器内部,确定它是否是对静态文件位置的调用。只有当用户具有管理员角色时,才能授予访问权限。我的回答有帮助吗?只是好奇,因为根本没有反馈。如果没有,也许我可以改进答案。您的答案确实很有帮助,因为现在我知道没有简单的方法可以实现基于角色的授权来访问.net identity 2.1中的文件夹或文件。