我正在构建一个asp.net mvc web api应用程序,并不确定如何执行会员资格。角色提供者/会员资格?如何在asp.net web api中?
在我目前的项目我有这个
我自己Users Table
和Role Table
我不使用asp.net成员,因为它带来太多的行李,不适合我要怎么设计我的数据库(相信我能来它,但它只是似乎想太多的工作)
一个user
可以有许多角色和role
可以有很多用户。
我使用EF来完成我对数据库的几乎所有调用。
在过去的项目中,我自己创建了Authorize Attribute
我自己调用了哪些数据库,并检查了用户是否处于该控制器/操作方法允许的正确角色。
通过不做任何会员供应商,我失去了一些内置功能,如User.IsInRole
。我仍然能够使用User.Identity.Name
,但我认为这是因为我设置了cookie。
什么是现在在asp.net mvc 4/web api中最好的做法?
虽然使用谷歌搜索,我发现“SimpleMembership”,但还没有读取太多。
在旁注中,如果我对用户进行了身份验证,是否可以使用User.Identity.Name
与我的webapi?
User.Identity.Name如何在asp.net webapi中设置?在以前的mvc 3应用程序中,我在自定义授权属性中使用了:httpContext.User.Identity.Name,然后使用我自己的服务层和该名称来查找用户具有的权限。我可以使用httpContext.User.Identity.Name,因为我认为这是由Cookie设置的吗? – chobo2
是的,您可以拥有自定义授权属性,并将'Thread.CurrentPrincipal'设置为相应的用户。看看我使用Basic身份验证使用成员资格提供程序编写的示例实现:http://stackoverflow.com/a/11536349/29407在此示例中,我使用了自定义委派处理程序,但是如果您使用授权过滤器也想要。 –
很酷,这是非常有帮助的。但有几个问题。为什么是异步?为什么你必须注册处理程序(我没有和User.Identity被填充,但我没有做异步),为什么填充角色在不知道如何访问它们。 – chobo2