关于c#:当前上下文中不存在名称Membership

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。有没有办法解决我的问题?


添加对system.web的引用(references->rightclick->add reference->.net->system.web)

现在为system.web.security添加using(或导入,如果使用vb)

您可能需要将配置文件更改为.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类生成加密安全的随机数。


在.cs文件中添加using System.Web.Security;命名空间。