none
如何在winform中使用Membership RRS feed

  • 问题

  • 我是想在winform项目中使用集成的验证用户凭据管理 Membership

    如题:如何在winform中使用Membership,如何在app.config中配置 membership 、profile、roleManager 节,是添加到<system.web></system.web>下吗?


    人要诚实!还要踏实! 我先为人人,人人再为我! 我的Spaces: http://mydodu.spaces.live.com/


    • 已编辑 Dodu.NET 2013年1月9日 3:44
    2013年1月9日 3:41

答案

  • 你好,首先非常感谢你的帮助,在这之前我已经能正常使用了,还要在系统中引用system.web.Providers,但我觉得有些不恰,就是在app.config中使用<system.web></system.web>来配置这个功能让我有些迷惑。或许还有更为合适的解决方案。

    另外,你提到的"客户端的.net framework 不要使用 Client profile。" 这怎么解释?


    人要诚实!还要踏实! 我先为人人,人人再为我! 我的Spaces: http://mydodu.spaces.live.com/

    在.NET 4.5 之前 .Net Framework 版本可分为 .Net Framework x.x 和 .Net Framework x.x Client Profile两个大类,后者是前者的子集,会去掉一些只有服务器才会用到的库。

    MemberShip 会使用那些配置项来初始化,因此配置写在那里是正确的,同时此初始化的方式是私有的,因此你无法修改。

    但是如果你确实需要通过代码或者你别的其它格式的配置文件来使用 MemberShip 的话,你可以考虑下列两种方式:

    1,自定义一个 MemberShip 类,按照它的方法接口把所有方法自己实现一变,并不是很麻烦,主要是实现 Initialize 相关三个方法;

    2,通过反射来给 MemberShip 的 Provider 和 Providers 等属性赋值,当然有些细节性问题,你可以在尝试的时候再议;

    上面两种方式的核心目的就是通过代码来实例化 SqlMembershipProvider,SqlProfileProvider,SqlRoleProvider,并把它们有机的组合到 MemberShip 上。


    • 已编辑 Skyseer 2013年1月10日 2:31
    • 已标记为答案 Dodu.NET 2013年1月11日 5:57
    2013年1月10日 2:29

全部回复

  • 你按照在web.config中的方式配置后,用下面代码:

    MembershipCreateStatus createStatus;
    Membership.CreateUser(model.UserName, model.Password, model.Email, null, null, true, null, out createStatus);

    如果调用能成功,那么就说明可以通过配置来。注意,客户端的.net framework 不要使用 Client profile。

    2013年1月9日 7:23
  • 你好,首先非常感谢你的帮助,在这之前我已经能正常使用了,还要在系统中引用system.web.Providers,但我觉得有些不恰,就是在app.config中使用<system.web></system.web>来配置这个功能让我有些迷惑。或许还有更为合适的解决方案。

    另外,你提到的"客户端的.net framework 不要使用 Client profile。" 这怎么解释?


    人要诚实!还要踏实! 我先为人人,人人再为我! 我的Spaces: http://mydodu.spaces.live.com/

    2013年1月9日 18:37
  • 你好,首先非常感谢你的帮助,在这之前我已经能正常使用了,还要在系统中引用system.web.Providers,但我觉得有些不恰,就是在app.config中使用<system.web></system.web>来配置这个功能让我有些迷惑。或许还有更为合适的解决方案。

    另外,你提到的"客户端的.net framework 不要使用 Client profile。" 这怎么解释?


    人要诚实!还要踏实! 我先为人人,人人再为我! 我的Spaces: http://mydodu.spaces.live.com/

    在.NET 4.5 之前 .Net Framework 版本可分为 .Net Framework x.x 和 .Net Framework x.x Client Profile两个大类,后者是前者的子集,会去掉一些只有服务器才会用到的库。

    MemberShip 会使用那些配置项来初始化,因此配置写在那里是正确的,同时此初始化的方式是私有的,因此你无法修改。

    但是如果你确实需要通过代码或者你别的其它格式的配置文件来使用 MemberShip 的话,你可以考虑下列两种方式:

    1,自定义一个 MemberShip 类,按照它的方法接口把所有方法自己实现一变,并不是很麻烦,主要是实现 Initialize 相关三个方法;

    2,通过反射来给 MemberShip 的 Provider 和 Providers 等属性赋值,当然有些细节性问题,你可以在尝试的时候再议;

    上面两种方式的核心目的就是通过代码来实例化 SqlMembershipProvider,SqlProfileProvider,SqlRoleProvider,并把它们有机的组合到 MemberShip 上。


    • 已编辑 Skyseer 2013年1月10日 2:31
    • 已标记为答案 Dodu.NET 2013年1月11日 5:57
    2013年1月10日 2:29
  • 哦,如果在app.config 中 使用 <system.web></system.web> 来配置是正确的话,那我的顾虑就解除了~

    再次感谢!


    人要诚实!还要踏实! 我先为人人,人人再为我! 我的Spaces: http://mydodu.spaces.live.com/

    2013年1月11日 5:57