Thinktecture ResourcAuthorization,未设置 AuthorizationManager
Thinktecture ResourcAuthorization, no AuthorizationManager set
我正在尝试使用来自 github.
的 Thinktecture 示例 ResourceAuthorization 构建示例 Web 应用程序
现在我在控制器中有一个动作,装饰有授权属性:
[ResourceAuthorize("Edit", "Resource")]
public ActionResult Edit()
{
return View();
}
我实现了自己的 AuthorizationManager:
public class AuthorizationManager : ResourceAuthorizationManager
{
public override Task<bool> CheckAccessAsync(ResourceAuthorizationContext context)
{
var resource = context.Resource.First().Value;
if (resource == "Resources")
{
return CheckResourcesAccessAsync(context);
}
else
{
return Nok();
}
}
当我现在尝试 运行 我的应用程序时,我不断收到错误消息:
No AuthorizationManager set.
我想也许我必须像这样在 web.config 中注册经理:
<system.identityModel>
<identityConfiguration>
<claimsAuthenticationManager type="Namespace.xy.AuthorizationManager, Namespace.xy" />
</identityConfiguration>
</system.identityModel>
没用。我做错了什么?
解决方案是在启动时注册授权管理器:
app.UseResourceAuthorization(new MyAuthorizationManager());
我正在尝试使用来自 github.
的 Thinktecture 示例 ResourceAuthorization 构建示例 Web 应用程序现在我在控制器中有一个动作,装饰有授权属性:
[ResourceAuthorize("Edit", "Resource")]
public ActionResult Edit()
{
return View();
}
我实现了自己的 AuthorizationManager:
public class AuthorizationManager : ResourceAuthorizationManager
{
public override Task<bool> CheckAccessAsync(ResourceAuthorizationContext context)
{
var resource = context.Resource.First().Value;
if (resource == "Resources")
{
return CheckResourcesAccessAsync(context);
}
else
{
return Nok();
}
}
当我现在尝试 运行 我的应用程序时,我不断收到错误消息:
No AuthorizationManager set.
我想也许我必须像这样在 web.config 中注册经理:
<system.identityModel>
<identityConfiguration>
<claimsAuthenticationManager type="Namespace.xy.AuthorizationManager, Namespace.xy" />
</identityConfiguration>
</system.identityModel>
没用。我做错了什么?
解决方案是在启动时注册授权管理器:
app.UseResourceAuthorization(new MyAuthorizationManager());