加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – ASP.NET MVC2和MemberShipProvider:它们如何结

发布时间:2020-12-16 06:43:22 所属栏目:asp.Net 来源:网络整理
导读:我有一个包含大量用户和大型数据库的现有ASP.NET应用程序.现在我想在MVC 2中使用它.我不想迁移,我从头开始或多或少地进行迁移.我想保留的数据库,而不是太多. 我已经有了我的数据库表,我也希望将LINQ保留在SQL层.我在当前的实现中没有使用MembershipProvider(
我有一个包含大量用户和大型数据库的现有ASP.NET应用程序.现在我想在MVC 2中使用它.我不想迁移,我从头开始或多或少地进行迁移.我想保留的数据库,而不是太多.

我已经有了我的数据库表,我也希望将LINQ保留在SQL层.我在当前的实现中没有使用MembershipProvider(在ASP.NET 1.0中没有得到强烈支持).

所以,要么我写自己的Membershipprovider来满足我的数据库和应用程序的需要,要么我根本不使用membershipprovider.

如果我不使用会员提供者,我想了解后果.与此相关的是什么?据我所知,在ASP.NET中,Login-Controls链接到提供者.可以轻松更改使用MVC2自动生成的AccountModel以支持我现有的逻辑.

当用户被AuthCookie识别时会发生什么? MVC是否使用MembershipProvider?

我忽略了什么吗?
我对RoleProvider有同样的问题.

非常感谢输入.

解决方法

使用MVC,可以简单地绕过成员资格和角色提供程序框架.有时这样做比实现自定义成员资格/角色提供程序更容易,特别是如果您的authn / authz模型不太适合这些提供程序的模型.

首先,您应该意识到您不需要从头开始编写所有内容,您可以使用核心Forms身份验证API,它可以独立于成员资格/角色提供程序框架使用:

> FormsAuthentication.SetAuthCookie –
用户访问后调用此方法
经过身份验证,请指定用户名
> Request.IsAuthenticated – 退货
如果调用SetAuthCookie,则为true
> HttpContext.Current.User.Identity.Name – 返回在调用SetAuthCookie时指定的用户名

所以这是你在MVC中绕过会员/角色提供者所做的事情:

>身份验证:在您的身上控制器,验证用户使用您的自定义逻辑.如果成功,打电话FormsAuthentication.SetAuthCookie用户名.>授权:创建自定义授权属性(源自AuthorizeAttribute).在里面AuthorizeCore覆盖,实现你的自定义授权逻辑,吸引用户HttpContext.Current.User.Identity.Name以及角色中定义的角色AuthorizeAttribute基类的属性.请注意,您还可以在自定义上定义属性授权属性并在授权逻辑中使用它.例如,您可以将表示角色的属性定义为枚举值特定于您的应用程序,而不是使用仅仅是字符串的Roles属性.>将您的控制器和操作添加到您的自定义授权属性,而不是默认的授权属性.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读