0

I am build webform application using vs2012 express edition.
After configuring the SqlMembership provider to store the users credential to my Sqlserver db, i want to create user user but i got this error: cannot declare a variable of type 'System.Web.Security.Membership.
I spent amost two hour googling still no resolution. here is my code

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Security.Membership;
//using Microsoft.AspNet.Membership.OpenAuth;

namespace Practice_project.Account
{
public partial class Register : Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        //RegisterUser.ContinueDestinationPageUrl = Request.QueryString["ReturnUrl"];
    }

   public void RegisterUser_CreatedUser(object sender, EventArgs e)
    {


        Membership Create_New_User = Membership.CreateUser(UserName, Password);

    }
}
}
4

2 回答 2

5

尝试使用另一个重载CreateUser

  MembershipCreateStatus status;
  MembershipUser newuser = Membership.CreateUser(username, password, email, "none", 
        "none", false, out status);

PasswordQuestion和为PasswordAnswer_false/trueIsApproved

于 2012-12-24T18:07:40.087 回答
-1

这是asp页面:

<%@ Page Title="Register" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Register.aspx.cs" Inherits="Practice_project.Account.Register" %>

<asp:Content runat="server" ID="BodyContent" ContentPlaceHolderID="MainContent">
<hgroup class="title">
    <h1><%: Title %>.</h1>
    <h2>Use the form below to create a new account.</h2>
</hgroup>

<asp:CreateUserWizard runat="server" ID="RegisterUser" ViewStateMode="Disabled" OnCreatedUser="RegisterUser_CreatedUser" BackColor="#E3EAEB" BorderColor="#E6E2D8" BorderStyle="Solid" BorderWidth="1px" Font-Names="Verdana" Font-Size="0.8em">
    <HeaderStyle BackColor="#666666" BorderColor="#E6E2D8" BorderStyle="Solid" BorderWidth="2px" Font-Bold="True" Font-Size="0.9em" ForeColor="White" HorizontalAlign="Center" />
    <LayoutTemplate>
        <asp:PlaceHolder runat="server" ID="wizardStepPlaceholder" />
        <asp:PlaceHolder runat="server" ID="navigationPlaceholder" />
    </LayoutTemplate>
    <ContinueButtonStyle BackColor="White" BorderColor="#C5BBAF" BorderStyle="Solid" BorderWidth="1px" Font-Names="Verdana" ForeColor="#1C5E55" />
    <CreateUserButtonStyle BackColor="White" BorderColor="#C5BBAF" BorderStyle="Solid" BorderWidth="1px" Font-Names="Verdana" ForeColor="#1C5E55" />
    <TitleTextStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" />
    <WizardSteps>
        <asp:CreateUserWizardStep runat="server" ID="RegisterUserWizardStep">
            <ContentTemplate>
                <p class="message-info">
                    Passwords are required to be a minimum of <%: Membership.MinRequiredPasswordLength %> characters in length.
                </p>

                <p class="validation-summary-errors">
                    <asp:Literal runat="server" ID="ErrorMessage" />
                </p>

                <fieldset>
                    <legend>Registration Form</legend>
                    <ol>
                        <li>
                            <asp:Label runat="server" AssociatedControlID="UserName">User name</asp:Label>
                            <asp:TextBox runat="server" ID="UserName" />
                            <asp:RequiredFieldValidator runat="server" ControlToValidate="UserName"
                                CssClass="field-validation-error" ErrorMessage="The user name field is required." />
                        </li>
                        <li>
                            <asp:Label runat="server" AssociatedControlID="Email">Email address</asp:Label>
                            <asp:TextBox runat="server" ID="Email" TextMode="Email" />
                            <asp:RequiredFieldValidator runat="server" ControlToValidate="Email"
                                CssClass="field-validation-error" ErrorMessage="The email address field is required." />
                        </li>
                        <li>
                            <asp:Label runat="server" AssociatedControlID="Password">Password</asp:Label>
                            <asp:TextBox runat="server" ID="Password" TextMode="Password" />
                            <asp:RequiredFieldValidator runat="server" ControlToValidate="Password"
                                CssClass="field-validation-error" ErrorMessage="The password field is required." />
                        </li>
                        <li>
                            <asp:Label runat="server" AssociatedControlID="ConfirmPassword">Confirm password</asp:Label>
                            <asp:TextBox runat="server" ID="ConfirmPassword" TextMode="Password" />
                            <asp:RequiredFieldValidator runat="server" ControlToValidate="ConfirmPassword"
                                 CssClass="field-validation-error" Display="Dynamic" ErrorMessage="The confirm password field is required." />
                            <asp:CompareValidator runat="server" ControlToCompare="Password" ControlToValidate="ConfirmPassword"
                                 CssClass="field-validation-error" Display="Dynamic" ErrorMessage="The password and confirmation password do not match." />
                        </li>
                    </ol>
                    <asp:Button runat="server" CommandName="MoveNext" Text="Register" />
                </fieldset>
            </ContentTemplate>
            <CustomNavigationTemplate />
        </asp:CreateUserWizardStep>

 public void RegisterUser_CreatedUser(object sender, EventArgs e)
    {

        CreateUserProfile(RegisterUser.UserName, RegisterUser.Password);


    }
   private void CreateUserProfile(string username, string password)
   {
       string connect = System.Configuration.ConfigurationManager.ConnectionStrings["_connection"].ToString();
       SqlConnection con = new SqlConnection(connect);
       string insertcommand="Insert into Users"
           +"(Userid,Password)"
           +"Values(@Userid,@Password)";
       SqlCommand cmd = new SqlCommand(insertcommand, con);

       cmd.Parameters.AddWithValue("@Userid", username);
       cmd.Parameters.AddWithValue("@Password", password);
       using (con)
       {
           con.Open();
           cmd.ExecuteNonQuery();

       }




   }

}
于 2012-12-27T16:53:40.450 回答