The name Membership does not exist in current context
我正在尝试编写一个简单的GUI来生成一个随机密码。我尝试使用的代码是:
using System.Web.Security;
Password_txtBx.Text = Membership.GeneratePassword(12, 1);
出现错误:"当前上下文中不存在名称'membership'"
我已将代码更改为:
Password_txtBx.Text = System.Web.Security.Membership.GeneratePassword(12, 1);
然后,我得到的错误消息是:"命名空间"system.web"中不存在类型或命名空间"securitymembership"(是否缺少程序集引用?)
在上面的两个例子中,我都引用了system.web.security。有没有办法解决我的问题?
- 你用的是.NET 1.x吗?成员类是在.NET 2.0中引入的。msdn.microsoft.com/en-us/library/…
- @培根.NET框架4
添加对system.web的引用(references->rightclick->add reference->.net->system.web)
现在为system.web.security添加using(或导入,如果使用vb)
您可能需要将配置文件更改为.NET(而不是.NET客户端配置文件)
- 谢谢您。我了解了如何更改"您可能需要将配置文件更改为.NET(而不是.NET客户端配置文件)"并使其正常工作。
- 没问题,祝你好运
您确定这是确切的代码/错误消息吗?
您发布的错误消息:
"The type or namespace 'SecurityMembership' does not exist in the namespace 'System.Web' (are you missing an assembly reference?"
意味着您正在尝试访问SecurityMembership类。没有这样的事。你应该在Security后面加一个点。另外,类在System.Web.dll中定义,而不是System.Web.Security.dll中定义。请注意,System.Web程序集在.NET Framework客户端配置文件中不可用。要使用它,您需要以完整的.NET框架为目标。可以在项目属性中更改项目的目标配置文件。
还有其他方法可以生成随机密码,而不需要添加对System.Web.dll程序集的依赖项(因为您是在Windows窗体环境中执行此操作)。此外,还可以使用System.Security.Cryptography类生成加密安全的随机数。
- 我把漏掉的点弄好了。现在它给我一个错误,说明"类型或命名空间"membership"在命名空间"system.web.security"中不存在(是否缺少程序集引用?)
- @Ajaustin12是否确实添加了对System.Web程序集的引用?System.Web,而不是System.Web.Security。在解决方案资源管理器的"参考"下检查。如果看不到,请右键单击引用,单击"添加引用",然后选择System.Web。
- 当我查找.NET引用时,我只有以下内容:System.Web.Services和System.Web.ApplicationServices,我已同时选择了这两项,并且没有更改。
- @Ajaustin12您要针对哪个.NET框架配置文件?.NET客户端配置文件可能没有System.Web。
- 我现在迷路了。我对C不熟悉,我只知道我在使用MSV2010专业版。在添加引用屏幕的顶部显示.NET Framework 4客户端配置文件
- @是的,我猜到了。您应该在项目属性中切换到.NET框架完整配置文件,这将阻止应用程序仅在安装了客户端配置文件且需要完整的.NET框架的情况下运行,或者您不能使用System.Web中的成员身份类,因为它在客户端配置文件中不可用。如我所说,您可以依靠其他方法生成随机密码,这些密码链接在答案中。
- 谢谢你的帮助,我想我是新来的C来解决这个问题。
在.cs文件中添加using System.Web.Security;命名空间。