zoukankan      html  css  js  c++  java
  • 在asp.net1.1和2.0下通过Membership完成帐户验证

    最近在研究Membership这个东西,也就是一个微软提供Account,由于他的通用性这个Membership集成在VS2005中了,新的登录控件等都是用的Membership。其实Membership在1.1的时候就有了,不过是单独发布的一个组件,我最早是见于CommunityServer。把他们的数据库拿来分析对比可以发现,其实表,视图是完全一样的,不过就是存储过程不同。但这个不同可就麻烦了,1.1的Membership根本无法在2.0的数据库中添加帐户什么的,同样2.0的Membership也不能使用1.1的数据库。那么我想无论是1.1还是2.0的项目都使用同一个Membership数据库该怎么办啦?

    为了达到无论是1.1的系统还是2.0的系统都使用同一个数据库的目的,我就把2.0的存储过程用户改为dbo,把1.1的存储过程改为membership,结果还是大失所望,Membership根本没有提供数据执行用户的修改,也就是说,只能执行dbo用户的存储过程。郁闷!

    那么我就把数据库这边完全用2.0的Membership数据库嘛,在1.1中要到这个数据库中进行认证的时候就不用1.1的Membership(根本用不起),直接调用数据库中的存储过程嘛。这样当然是可以的,可是用户密码是SHA1加密的,而且其他地方也有不少修改,那么就要再从新写一个能执行2.0数据库的Membership,虽然有Reflector来看源代码,但是这个周期太长了,更痛苦。

    那么还有什么好办法啦?最终我想到还是使用WebService算了。在2005下面建立WebService项目,使用2.0Membership数据库,把要用到的几个验证函数都写成Web服务,然后再在1.1中直接调用Web服务就是了。这个方法比较简单,以后所有2.0项目就可以直接使用Membership了,而1.1项目就调用Web服务。

    呵呵,目前我所想到的就是这样的解决办法,也不知道还有更好的方案。

    【本文章出自博客园深蓝居,转载请注明作者出处,如果您觉得博主的文章对您有很大帮助,欢迎支付宝(studyzy@163.com)对博主进行打赏。】
  • 相关阅读:
    -bash: fork: retry: Resource temporarily unavailable
    360随身wifi在win10中连不上网络
    centos6安装php5.4以上版本
    Appium自动化测试教程-自学网-monkey事件
    Appium自动化测试教程-自学网-monkey简介
    Appium自动化测试教程-自学网-Package与Activity
    Appium自动化测试教程-自学网-adb命令
    Appium自动化测试教程-自学网-安卓模拟器
    Appium自动化测试教程-自学网-SDK
    Appium自动化测试教程-自学网-app基础知识
  • 原文地址:https://www.cnblogs.com/studyzy/p/694102.html
Copyright © 2011-2022 走看看