Asp.NET Webforms register.aspx验证
我正在使用Visual Studio 2017开发一个定制网站。我已经包括了身份,因此提供了一些页面来注册或登录用户。我正在调整注册页面,以允许使用fileupload控件上载图片(我已经创建了一个配置文件表,这将保存我想要捕获的额外数据)。但是,当我执行此操作时,即使电子邮件文本框中有数据,也会在我提交时触发对电子邮件的验证。我想这可能与上传功能发生时重新加载页面的方式有关?我还想添加一个复选框,并在选中时显示其他字段,使用CheckedChanged事件设置我想要隐藏的控件的可见属性。我已经看到,如果我想这样做,我需要将AutoPostBack设置为true。 register.aspx中的代码Asp.NET Webforms register.aspx验证,asp.net,validation,file-upload,webforms,Asp.net,Validation,File Upload,Webforms,我正在使用Visual Studio 2017开发一个定制网站。我已经包括了身份,因此提供了一些页面来注册或登录用户。我正在调整注册页面,以允许使用fileupload控件上载图片(我已经创建了一个配置文件表,这将保存我想要捕获的额外数据)。但是,当我执行此操作时,即使电子邮件文本框中有数据,也会在我提交时触发对电子邮件的验证。我想这可能与上传功能发生时重新加载页面的方式有关?我还想添加一个复选框,并在选中时显示其他字段,使用CheckedChanged事件设置我想要隐藏的控件的可见属性。我已经
<asp:Content runat="server" ID="BodyContent" ContentPlaceHolderID="MainContent">
<h2><%: Title %>.</h2>
<p class="text-danger">
<asp:Literal runat="server" ID="ErrorMessage" />
</p>
<div class="form-horizontal">
<h4>Create a new account</h4>
<hr />
<asp:ValidationSummary runat="server" CssClass="text-danger" />
<div class="form-group">
<asp:Label runat="server" AssociatedControlID="UserName" CssClass="col-md-2 control-label">User Name</asp:Label>
<div class="col-md-10">
<asp:TextBox runat="server" ID="UserName" CssClass="form-control" />
<asp:RequiredFieldValidator runat="server" ControlToValidate="UserName"
CssClass="text-danger" ErrorMessage="The user name is required." />
</div>
</div>
<div class="form-group">
<asp:Label runat="server" AssociatedControlID="Email" CssClass="col-md-2 control-label">Email</asp:Label>
<div class="col-md-10">
<asp:TextBox runat="server" ID="Email" CssClass="form-control" TextMode="Email" />
<asp:RequiredFieldValidator runat="server" ControlToValidate="Email"
CssClass="text-danger" ErrorMessage="The email field is required." />
</div>
</div>
<div class="form-group">
<asp:Label runat="server" AssociatedControlID="Password" CssClass="col-md-2 control-label">Password</asp:Label>
<div class="col-md-10">
<asp:TextBox runat="server" ID="Password" TextMode="Password" CssClass="form-control" />
<asp:RequiredFieldValidator runat="server" ControlToValidate="Password"
CssClass="text-danger" ErrorMessage="The password field is required." />
</div>
</div>
<div class="form-group">
<asp:Label runat="server" AssociatedControlID="ConfirmPassword" CssClass="col-md-2 control-label">Confirm password</asp:Label>
<div class="col-md-10">
<asp:TextBox runat="server" ID="ConfirmPassword" TextMode="Password" CssClass="form-control" />
<asp:RequiredFieldValidator runat="server" ControlToValidate="ConfirmPassword"
CssClass="text-danger" Display="Dynamic" ErrorMessage="The confirm password field is required." />
<asp:CompareValidator runat="server" ControlToCompare="Password" ControlToValidate="ConfirmPassword"
CssClass="text-danger" Display="Dynamic" ErrorMessage="The password and confirmation password do not match." />
</div>
</div>
<div class="form-group">
<asp:Label runat="server" AssociatedControlID="UserPicture" CssClass="col-md-2 control-label">Upload your user picture</asp:Label>
<div class="col-md-10">
<asp:FileUpload runat="server" ID="UserPicture" CssClass="form-control" />
</div>
</div>
<div class="form-group">
<asp:Label runat="server" AssociatedControlID="userStatus" CssClass="col-md-2 control-label">Do you want to upload Artwork? If so check this box and once approved you will be able to do this.</asp:Label>
<div class="col-md-10">
<asp:CheckBox ID="userStatus" runat="server" CssClass="form-control" AutoPostBack="true" Checked=false OnCheckedChanged="userStatus_CheckedChanged" />
</div>
</div>
<div class="form-group">
<asp:Label runat="server" AssociatedControlID="ArtistIntro" CssClass="col-md-2 control-label" ID="lblInfo" Visible="True">Please enter information about yourself as an artist</asp:Label>
<div class="col-md-10">
<asp:TextBox runat="server" ID="ArtistIntro" CssClass="form-control" Visible="True" />
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<asp:Button runat="server" OnClick="CreateUser_Click" Text="Register" CssClass="btn btn-default" />
<asp:Label ID="lblError" runat="server"></asp:Label>
</div>
</div>
</div>
</asp:Content>
.
创建新帐户
用户名
电子邮件
密码
确认密码
上传你的用户图片
你想上传艺术品吗?如果是,请勾选此框,一旦获得批准,您将能够执行此操作。
请输入您作为艺术家的信息
register.aspx.cs中的代码
using System;
using System.Linq;
using System.Web;
using System.Web.UI;
using Microsoft.AspNet.Identity;
using Microsoft.AspNet.Identity.Owin;
using Owin;
using UHFinal.Models;
using System.Data.SqlClient;
namespace UHFinal.Account
{
public partial class Register : Page
{
protected void CreateUser_Click(object sender, EventArgs e)
{
var manager = Context.GetOwinContext().GetUserManager<ApplicationUserManager>();
var signInManager = Context.GetOwinContext().Get<ApplicationSignInManager>();
var user = new ApplicationUser() { UserName = UserName.Text };
IdentityResult result = manager.Create(user, Password.Text);
if (result.Succeeded)
{
//Insert a UserAccount record to save the additional details.
//Also sets the userStatus. AP or UP, Artist Pending or User Pending
string connStr = System.Configuration.ConfigurationManager.ConnectionStrings["defaultConnection"].ConnectionString;
SqlConnection conn = new SqlConnection(connStr);
SqlCommand insert = new SqlCommand("insert into userAccount(UserID, userStatus, UserPicture, ArtistIntro) " +
"values(@userId, @userStatus, @UserPicture, @UserIntro)", conn);
insert.Parameters.AddWithValue("@userId", user.Id);
if (userStatus.Checked == true) {
insert.Parameters.AddWithValue("@userStatus", "AP");
}
else
{
insert.Parameters.AddWithValue("@userStatus", "UP");
}
insert.Parameters.AddWithValue("@UserPicture", "UserPics/" + UserPicture.FileName);
insert.Parameters.AddWithValue("@UserIntro", ArtistIntro.Text);
try
{
conn.Open();
object returnObj = insert.ExecuteNonQuery();
}
catch (Exception ex)
{
lblError.Text = "Error: " + ex.Message;
}
conn.Close();
signInManager.SignIn(user, isPersistent: false, rememberBrowser: false);
IdentityHelper.RedirectToReturnUrl(Request.QueryString["ReturnUrl"], Response);
}
else
{
ErrorMessage.Text = result.Errors.FirstOrDefault();
}
}
protected void userStatus_CheckedChanged(object sender, EventArgs e)
{
if (userStatus.Checked == true)
{
ArtistIntro.Visible = true;
lblInfo.Visible = true;
}
else
{
ArtistIntro.Visible = false;
lblInfo.Visible = false;
}
}
}
}
使用系统;
使用System.Linq;
使用System.Web;
使用System.Web.UI;
使用Microsoft.AspNet.Identity;
使用Microsoft.AspNet.Identity.Owin;
使用Owin;
使用UHF模型;
使用System.Data.SqlClient;
名称空间:final.Account
{
公共部分类寄存器:第页
{
受保护的void CreateUser_单击(对象发送方,事件参数e)
{
var manager=Context.GetOwinContext().GetUserManager();
var signInManager=Context.GetOwinContext().Get();
var user=new ApplicationUser(){UserName=UserName.Text};
IdentityResult result=manager.Create(user、Password.Text);
if(result.successed)
{
//插入UserAccount记录以保存其他详细信息。
//还设置userStatus.AP或UP、艺术家挂起或用户挂起
字符串connStr=System.Configuration.ConfigurationManager.ConnectionString[“defaultConnection”].ConnectionString;
SqlConnection conn=新的SqlConnection(connStr);
SqlCommand insert=新的SqlCommand(“插入到用户帐户(UserID、userStatus、UserPicture、ArtistIntro)”+
“值(@userId、@userStatus、@UserPicture、@UserIntro)”,康涅狄格州;
insert.Parameters.AddWithValue(“@userId”,user.Id);
如果(userStatus.Checked==true){
insert.Parameters.AddWithValue(“@userStatus”,“AP”);
}
其他的
{
insert.Parameters.AddWithValue(“@userStatus”,“UP”);
}
insert.Parameters.AddWithValue(“@UserPicture”,“UserPics/”+UserPicture.FileName);
insert.Parameters.AddWithValue(“@UserIntro”,ArtistIntro.Text);
尝试
{
conn.Open();
object returnObj=insert.ExecuteNonQuery();
}
捕获(例外情况除外)
{
lblError.Text=“错误:”+ex.消息;
}
康涅狄格州关闭();
signInManager.SignIn(用户,isPersistent:false,rememberBrowser:false);
IdentityHelper.RedirectToReturnUrl(Request.QueryString[“ReturnUrl”],响应);
}
其他的
{
ErrorMessage.Text=result.Errors.FirstOrDefault();
}
}
受保护的无效用户状态\u CheckedChanged(对象发送方,事件参数e)
{
if(userStatus.Checked==true)
{
ArtistIntro.Visible=真;
lblInfo.Visible=true;
}
其他的
{
ArtistIntro.Visible=假;
lblInfo.Visible=false;
}
}
}
}
在创建新的应用程序用户时,我遗漏了电子邮件
var user = new ApplicationUser() { UserName = UserName.Text, Email = Email.Text };
请显示您的代码。对不起,大部分代码是由Visual Studio生成的。