我要寻找的NuGet包,提供了类似的功能在轨康康舞宝石( https://github.com/ryanb/cancan )。
有谁知道一个插件,它提供了类似的功能? 或简单的方式来实现这一点?
谢谢
我要寻找的NuGet包,提供了类似的功能在轨康康舞宝石( https://github.com/ryanb/cancan )。
有谁知道一个插件,它提供了类似的功能? 或简单的方式来实现这一点?
谢谢
最后我看着http://www.develop.com/wifclaimsbasedauthorizationone它确实非常多惨惨呢。
例如
ClaimsPrincipalPermission.CheckAccess("Customer","Add");
会检查用户是否有权限才能添加客户。
我们正在测试http://thinktecture.github.com/Thinktecture.IdentityModel.45/
基本上要求基于对于.NET授权
与MVC5和一张ASP.Net权利要求烘焙右转入的.Net的核心
一个长长的搜索后,我发现这些文章有用:
http://msdn.microsoft.com/en-us/library/ff359101.aspx http://www.codeproject.com/Articles/639458/Claims-Based-Authentication-and-Authorization HTTP://www.codetails。 COM / punitganshani /使用-声明的标识与- simplemembership-在-ASP净MVC / 20130525
http://leastprivilege.com/
http://www.postsharp.net/aspects/examples/security
UPDATE
微软最新的2013版本介绍: http://blogs.msdn.com/b/webdev/archive/2013/06/27/introducing-asp-net-identity-membership-system-for-asp-net-applications。 ASPX
样品:
https://stackoverflow.com/a/18751036/316343
https://github.com/rustd/AspnetIdentitySample http://msdn.microsoft.com/en-us/library/hh377151.aspx
我更喜欢它是基于从Thinktecture家伙框架CodeProject上的教程中所使用的,源代码,请访问:
https://github.com/brockallen/BrockAllen.MembershipReboot https://github.com/thinktecture/Thinktecture.IdentityModel.45
只要记住,CodeProject上的文章是从视持久点过时。
现在MembershipReboot支持的EntityFramework,MongoDB的和RavenDB作为数据存储。
最近,我正在寻找一些关于基于活动的授权,我发现了一些有趣的教程,如何实现它: https://mkarczewski.wordpress.com/2013/10/21/activity-based-authorization-in-modular-systems/
我也发现了这个库,而且看起来非常酷! 这是什么东西,我希望能找到。 https://github.com/michelgrootjans/CanI/blob/master/README.md
在.NET你应该使用成员资格提供和Authorize
属性。
看看这个页面的ASP.NET核心文档。 它有点类似做什么惨惨。
你写的授权处理,像这样:
public class DocumentAuthorizationHandler :
AuthorizationHandler<OperationAuthorizationRequirement, Document>
{
public override Task HandleRequirementAsync(AuthorizationHandlerContext context,
OperationAuthorizationRequirement requirement,
Document resource)
{
// Validate the operation using the resource, the identity and
// the Name property value from the requirement.
return Task.CompletedTask;
}
}
现在你可以使用下面的代码在你的控制器:
if (await authorizationService.AuthorizeAsync(User, document, Operations.Read))
{
return View(document);
}
else
{
return new ChallengeResult();
}
或在您的观点:
@if (await AuthorizationService.AuthorizeAsync(User, Model, Operations.Edit))
{
<p><a class="btn btn-default" role="button"
href="@Url.Action("Edit", "Document", new { id = Model.Id })">Edit</a></p>
}