一个注册和登入和Web.Config的例子

本文介绍了一个简单的用户注册和登录认证流程实现,通过SQL Server存储过程完成用户信息的存取及验证工作。具体包括:创建用户表、注册过程、登录认证过程,并使用C#语言与ASP.NET进行前后端交互。

3个SQL语句

CREATE TABLE UserList
(
  u_id INT NOT NULL IDENTITY,
  u_username VARCHAR( 100 ),
  u_password VARCHAR( 100 )

//以上是创建一个表

CREATE PROCEDURE DBRegister
(
  @username Varchar( 100 ),
  @password Varchar( 100 )
)
AS

IF EXISTS( SELECT u_id
  FROM UserList
  WHERE u_username=@username )
  RETURN - 1
ELSE
  INSERT UserList (
    u_username,
    u_password
    ) VALUES (
    @username,
    @password
    )
  RETURN @@IDENTITY    //返回受影响的行的@@IDENTITY

//创建一个储存过程

CREATE PROCEDURE DBAuthenticate

(
  @username Varchar( 100 ),
  @password Varchar( 100 )
)
As

DECLARE @ID INT
DECLARE @actualPassword Varchar( 100 )

SELECT
  @ID = IdentityCol,                                         //IdentityCol返回@@IDENTITY
  @actualPassword = u_password
  FROM UserList
  WHERE u_username = @username

IF @ID IS NOT NULL
  IF @password = @actualPassword
    RETURN @ID
  ELSE
    RETURN - 2
ELSE
  RETURN - 1

//另一个储存过程

<%@ Page Language="C#" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>

<script language="C#" runat=server>

void Page_Load(Object sender , EventArgs e)
{
   string  strLinkPath;

  if (! IsPostBack ) {
    strLinkPath = string .Format( "Register/Register.aspx?ReturnUrl={0}", Request.Params[ "ReturnUrl" ] );
    lnkRegister.NavigateUrl = string .Format( strLinkPath );
  }
}

void Button_Click( object s, EventArgs e ) {
  if ( IsValid ) {
    if ( DBAuthenticate( txtUsername.Text, txtPassword.Text ) > 0 )
    {
      FormsAuthentication.RedirectFromLoginPage( txtUsername.Text, false );
    }
  }
}

int DBAuthenticate( string  strUsername, string  strPassword ) {
 SqlConnection conMyData;
 SqlCommand cmdSelect;
 SqlParameter parmReturnValue;
 int intResult;

 conMyData = new SqlConnection("Server=localhost//TUJUNYAN;Integrated Security=SSPI;Database=Pubs" );
 cmdSelect = new SqlCommand( "DBAuthenticate", conMyData );
 cmdSelect.CommandType = CommandType.StoredProcedure;

 parmReturnValue = cmdSelect.Parameters.Add( "RETURN_VALUE", SqlDbType.Int );
 parmReturnValue.Direction = ParameterDirection.ReturnValue;

 cmdSelect.Parameters.Add( "@username", strUsername );
 cmdSelect.Parameters.Add( "@password", strPassword );
 conMyData.Open();
 cmdSelect.ExecuteNonQuery();
 intResult = System.Convert.ToInt32(cmdSelect.Parameters[ "RETURN_VALUE" ].Value);
 conMyData.Close();
 if ( intResult < 0 )
 {
  if ( intResult == -1 )
  {
   lblMessage.Text = "Username ! Registered!";
  }
  else
  {
   lblMessage.Text = "Invalid Password!";
  }
 }
 return intResult;
}

</Script>

<html>
<head><title>Login.aspx</title></head>
<body>
<form Runat="Server">

<h2>Please Login:</h2>

<asp:Label
  ID="lblMessage"
  ForeColor="Red"
  Font-Bold="True"
  Runat="Server" />
<p>
<b>Username:</b>
<br>
<asp:TextBox
  ID="txtUsername"
  Runat="Server" />
<asp:RequiredFieldValidator
  ControlToValidate="txtUsername"
  Text="Required!"
  Runat="Server" />
<p>
<b>Password:</b>
<br>
<asp:TextBox
  ID="txtPassword"
  Runat="Server" />
<asp:RequiredFieldValidator
  ControlToValidate="txtPassword"
  Text="Required!"
  Runat="Server" />
<p>
<asp:Button
  Text="Login!"
  OnClick="Button_Click"
  Runat="Server" />
<hr>
<asp:HyperLink
  ID="lnkRegister"
  Text="Click Here To Register!"
  Runat="Server" />

</form>
</body>
</html>

//登入的页面

 

<%@ Page Language="C#" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>

<script language="C#" runat=server>
void Button_Click( object s, EventArgs e ) {
 SqlConnection conMyData;
 SqlCommand cmdSelect;
 SqlParameter parmReturnValue;
 int intResult;

 if ( IsValid )
 {
  conMyData = new SqlConnection("Server=localhost//tujunyan;Integrated Security=SSPI;Database=Pubs" );
  cmdSelect = new SqlCommand( "DBRegister", conMyData );
  cmdSelect.CommandType = CommandType.StoredProcedure;
  parmReturnValue = cmdSelect.Parameters.Add( "RETURN_VALUE", SqlDbType.Int );
  parmReturnValue.Direction = ParameterDirection.ReturnValue;
  cmdSelect.Parameters.Add( "@username", txtUsername.Text );
  cmdSelect.Parameters.Add( "@password", txtPassword.Text );
  conMyData.Open();
  cmdSelect.ExecuteNonQuery();
  intResult = System.Convert.ToInt32(cmdSelect.Parameters[ "RETURN_VALUE" ].Value);

  conMyData.Close();
  if ( intResult == - 1 )
  {
  lblMessage.Text = "Username Already Registered!";
  }
  else
  {
  FormsAuthentication.RedirectFromLoginPage( txtUsername.Text, false ); 
  }
 }
}

</Script>

<html>
<head><title>Register.aspx</title></head>
<body>
<form Runat="Server">

<h2>Please Register</h2>

<asp:Label
  ID="lblMessage"
  ForeColor="Red"
  Font-Bold="True"
  EnableViewState="False"
  Runat="Server" />
<p>
<b>Username:</b>
<br>
<asp:TextBox
  ID="txtUsername"
  Runat="Server" />
<asp:RequiredFieldValidator
  ControlToValidate="txtUsername"
  Text="Required!"
  Runat="Server" />
<p>
<b>Password:</b>
<br>
<asp:TextBox
  ID="txtPassword"
  Runat="Server" />
<asp:RequiredFieldValidator
  ControlToValidate="txtPassword"
  Text="Required!"
  Runat="Server" />
<p>
<asp:Button
  Text="Register!"
  OnClick="Button_Click"
  Runat="Server" />
<asp:Label id="myLabel" runat="server" />
</form>
</body>
</html>

//注册的页面

<configuration>
  <system.web>
    <authentication mode="Forms" />
    <authorization> 
      <deny users="?" />    //不允许匿名登入   如果是匿名就将转到login.aspx
    </authorization>
  </system.web>
</configuration>

//web.config

 

 

考虑可再生能源出力不确定性的商业园区用户需求响应策略(Matlab代码实现)内容概要:本文围绕“考虑可再生能源出力不确定性的商业园区用户需求响应策略”展开,结合Matlab代码实现,研究在可再生能源(如风电、光伏)出力具有不确定性的背景下,商业园区如何制定有效的需求响应策略以优化能源调度提升系统经济性。文中可能涉及不确定性建模(如场景生成与缩减)、优化模型构建(如随机规划、鲁棒优化)以及需求响应机制设计(如价格型、激励型),并通过Matlab仿真验证所提策略的有效性。此外,文档还列举了大量相关的电力系统、综合能源系统优化调度案例与代码资源,涵盖微电网调度、储能配置、负荷预测等多个方向,形成一个完整的科研支持体系。; 适合人群:具备一定电力系统、优化理论Matlab编程基础的研究生、科研人员及从事能源系统规划与运行的工程技术人员。; 使用场景及目标:①学习如何建模可再生能源的不确定性并应用于需求响应优化;②掌握使用Matlab进行商业园区能源系统仿真与优化调度的方法;③复现论文结果或开展相关课题研究,提升科研效率与创新能力。; 阅读建议:建议结合文中提供的Matlab代码实例,逐步理解模型构建与求解过程,重点关注不确定性处理方法与需求响应机制的设计逻辑,同时可参考文档中列出的其他资源进行扩展学习与交叉验证。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值