ASP.NET中Membership的作用是什么

本篇文章为大家展示了ASP.NET中Membership的作用是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

创新互联服务项目包括景德镇网站建设、景德镇网站制作、景德镇网页制作以及景德镇网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,景德镇网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到景德镇省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!

在本地开发一个ASP.NET2.0的应用程序时使用了Membership、Roles或Profile特性。你创建了ASP.NET一些新用户,一切都没有问题。

然后把这个程序copy到远程服务器(remote server)上(或者只是移动到你本地服务器上的其他目录)然后运行。由于某种原因,虽然我们能够连接到Membership数据库,但是当登陆的时候就会出现错误了,它并不抛出连接错误(connection error),而是提示你像类似的错误:“尝试登陆失败,请重试”(Login attempt unsuccessful, please try again)

原因:
这种经常出现的错误的原因是因为Membership(或者是roles、profile) provider已经被加入到了程序的web.config里了。但是applicationName属性(attribute)并没有被指定(假设下面的代码的粗体部分布存在地话)

  1.  

  2.  

  3.  

  4.  name="AspNetSqlMembershipProvider" 

  5. type="System.Web.Security.SqlMembershipProvider, System.Web, 
    Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" 

  6. connectionStringName="LocalSqlServer" 

  7. enablePasswordRetrieval="false" 

  8. enablePasswordReset="true" 

  9. requiresQuestionAndAnswer="true" 

  10. requiresUniqueEmail="false" 

  11. passwordFormat="Hashed" 

  12. maxInvalidPasswordAttempts="5" 

  13. minRequiredPasswordLength="7" 

  14. minRequiredNonalphanumericCharacters="1" 

  15. passwordAttemptWindow="10" 

  16. passwordStrengthRegularExpression="" 

  17. applicationName="/" 

  18. /> 

  19.  

  20.  

如果它被copy到其他的地方或服务器上并且更换了虚拟路径(比如说“/app1” 或更通常被设置的“/”)后,当Membership APIs被使用时他们就“看”不到数据库里已有的用户了——因为他们将会使用一个不同的applicationName去数据库里寻找用户,相应地过滤 application_Users表中的用户。这就是为什么会出现上面错误的原因。

如何解决这个问题:
最简单的办法是打开ASPNETDB数据库中的aspnet_Users和aspnet_Application表,去“回想”(figure out,因为那时候我们的虚拟目录叫什么名字我们恐怕已经忘了)创建用户和其他数据的时候的程序名称(去aspnet_Application表中查找)

然后打开你的web.config文件,添加一个applicationName属性到provider声明的地方并且给他赋值,例如,下面的代码我们把它设置为在aspnet_Application表存在的/website8:

  1.  

  2.  

  3.  

  4.  name="AspNetSqlMembershipProvider" 

  5. type="System.Web.Security.SqlMembershipProvider, System.Web, 
    Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" 

  6. connectionStringName="LocalSqlServer" 

  7. enablePasswordRetrieval="false" 

  8. enablePasswordReset="true" 

  9. requiresQuestionAndAnswer="true" 

  10. requiresUniqueEmail="false" 

  11. passwordFormat="Hashed" 

  12. maxInvalidPasswordAttempts="5" 

  13. minRequiredPasswordLength="7" 

  14. minRequiredNonalphanumericCharacters="1" 

  15. passwordAttemptWindow="10" 

  16. passwordStrengthRegularExpression="" 

  17. applicationName="/website8" 

  18. /> 

  19.  

  20.  

上述内容就是ASP.NET中Membership的作用是什么,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注创新互联行业资讯频道。


网页题目:ASP.NET中Membership的作用是什么
文章路径:http://pwwzsj.com/article/jecice.html