ASP.NET 노트 의 갤러리 권한 설정 방법

1.하나의 인 스 턴 스 를 통 해 갤러리 권한 을 소개 합 니 다.그 중에서 데이터 뱅 크 의 응용 과 관련 되 고 visual studio 2010 에서 데이터 베 이 스 를 연결 합 니 다. 데이터 세트 및 데이터 시트 를 만 드 는 중 원 격 연결 이 불가능 한 오류 가 발생 할 수 있 습 니 다.구체 적 인 ide 솔 루 션
참고 할 만하 다  SQL Server 2008 R2:error 26 원 격 연결 열기 상세 설명2.이 인 스 턴 스 는 사용자 이름과 비밀 번 호 를 입력 하여 이 사용자 가 일반 사용자 인지 유 료 사용자 인지 판단 한 다음 에 다운로드 이미지 목록 에 들 어 가 는 것 입 니 다.사용자 가 다운 로드 를 클릭 하지 않 으 면 점프 페이지 로 이동 하 는 알림 입 니 다.일반 사용자 가 사진 을 다운로드 하 는 것 은 워 터 마크 가 있 습 니 다.
    그림 을 사용 해 보고 유 료 사용자 가 그림 을 다운로드 하 는 것 은 원본 그림 이다.로그 인 할 때 오류 로그 인 횟수 제한 과 로그 인 시도 시간 간격 을 설정 합 니 다.
    이 과정 은 데이터 시트 와 데이터 세트 를 만들어 야 합 니 다.DAl 폴 더 를 만들어 서 저장 하고 데이터 세트 는 APP 에 저장 해 야 합 니 다.Date 폴 더 에서 데이터 의 안전성 을 확보 합 니 다.
    데이터 시트 작성 은 다음 과 같 습 니 다.
           
   데이터베이스 문 구 는 다음 과 같다.
  SELECT ID, sUserName, sPassword, iLevel, sErrorTime, sLastErrorTime  FROM T_userInfo
  SELECT ID, iLevel, sErrorTime, sLastErrorTime, sPassword, sUserName FROM T_userInfo WHERE (ID = @ID)
  SELECT ID, iLevel, sErrorTime, sLastErrorTime, sPassword, sUserName FROM T_userInfo WHERE (sUserName = @sUserName)
   UPDATE T_userInfo Set sErrorTime=IsNULL(sErrorTime,0)+1,sLastErrorTime=getdate() where ID=@ID
   UPDATE T_userInfo  Set  sErrorTime=0 where ID=@ID
로그 인 페이지:login.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="login.aspx.cs" Inherits=" .login" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>

    </div>
    <asp:Label ID="Label1" runat="server" Text=" :"></asp:Label>
    <asp:TextBox ID="txtUserName" runat="server"></asp:TextBox>
    <asp:Label ID="lablwarn" runat="server" BackColor="#FF3300"
        BorderColor="#FF3300" Visible="False"></asp:Label>
    <br />
    <asp:Label ID="Label2" runat="server" Text="   :   "></asp:Label>
    <asp:TextBox ID="txtPassword" runat="server" TextMode="Password" ></asp:TextBox>
    <br />
&nbsp;&nbsp;&nbsp;&nbsp;
    <br />
&nbsp;&nbsp;&nbsp;&nbsp;
    <asp:Button ID="btnLogin" runat="server" onclick="btnLogin_Click" Text=" " />
    </form>
</body>
</html>

로그 인 페이지:login.aspx.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using .DAL.DataSetPicTableAdapters;

namespace
{
    public partial class login : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void btnLogin_Click(object sender, EventArgs e)
        {
            T_userInfoTableAdapter adapter = new T_userInfoTableAdapter();
            var data = adapter.GetDataByUserName(txtUserName.Text);
            if (data.Count <= 0)
            {
                lablwarn.Text = " ";
                lablwarn.Visible = true;
            }
            else {
                //LinQ single ,
                // 0 , ,
                var user = data.Single();

                //
                //
                if (!user.IssErrorTimeNull() && !user.IssLastErrorTimeNull()) {
                    double time = (DateTime.Now - user.sLastErrorTime).TotalMinutes;
                    if (time <= 30 && user.sErrorTime > 5)
                    {

                        lablwarn.Text = " , 30 ";
                        lablwarn.Visible = true;
                        return;
                    }
                }

                if (user.sPassword == txtPassword.Text)
                {
                    Session[" "] = true;
                    Session[" ID"] = user.ID;

                    lablwarn.Text = " , ";
                    lablwarn.Visible = true;
                    //
                    adapter.ResertTimeById(user.ID);
                    Context.Response.Redirect("Pic_list.htm");
                    // Redirect
                }
                else {
                    adapter.IncErrorTimeById(user.ID);
                    lablwarn.Text = " , ";
                    lablwarn.Visible = true;
                }
            }
        }

    }
}
/* : SQL Server 。
 * 。 SQL Server 。
 * (provider: SQL Network Interfaces, error: 26 - / )
 *
 * :
*/

다운로드 목록 페이지:Piclist.htm
이미지 1그림 2그림 3
다운로드 목록 페이지:Picdownload.ashxusing System.Linq;using System.Web;그림 다운로드.DAL.DATASetPicTableAdapters 사용 하기;using System.Web.SessionState;using System.Drawing;
namespace 그림 다운로드{    ///     /// Pic_다운로드 요약 설명    ///     public class Pic_download : IHttpHandler,IRequiresSessionState    {
        public void ProcessRequest(HttpContext context)        {            if(context.session["로그 인 여부"]=null)            {                context.Response.Redirect("Target.htm");            }            else {                string fileName = context.Request["fileName"];
                //신문지상                context.Response.ContentType="image/JPEG";                string newFileName = HttpUtility.UrlEncode(fileName);                context.Response.AddHeader("Content-Disposition", "attachment:filename=" + newFileName);
                //ID 로 데이터 가 져 오기                int user_id=(int)context.ession["로그 인 한 ID"];                T_userInfoTableAdapter adapter = new T_userInfoTableAdapter();                var data = adapter.GetDataById(user_id);                var user = data.Single();
                if(user.iLevel==0)//일반 사용자                {                    using (System.Drawing.Bitmap bitImage = new System.Drawing.Bitmap("image/" + fileName))                    {                        //캔버스 를 설치 하 다                        using (System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bitImage))                        {                            g.drawString("무료 사용자 시용―"+user.sUserName,new System.drawing.Font("송 체",20),Brushes.Red,0,0);                           }                        //출력 스 트림 에 저장                        bitImage.Save(context.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);
                    }                }                유 료 사용자                {                    context.Response.WriteFile("image/"+fileName);                }            }        }
        public bool IsReusable        {            get            {                return false;            }        }    }}페이지 이동:Target.htm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title> </title>
</head>
<body>
    , 5 ,
    , <a href="login.aspx"> </a>
    <br/> <div id="leftDiv"></div>
</body>
</html>
<script type="text/javascript">
    var leftSecond = 5;
    setInterval(function () {
        if (leftSecond <= 0) {
            window.location.href = "login.aspx";
        }
        document.getElementById("leftDiv").innerHTML = leftSecond;
        leftSecond--;
    }, 1000)
</script>
요약:
(1.가장 큰 문 제 는 데이터베이스 원 격 연결 문제 에 부 딪 혔 다 는 것 입 니 다.그러나 이 해 를 통 해 알 수 있 듯 이 SQL server 2008 은 기본 적 인 지원 이 아니 라 설정 이 필요 합 니 다.구체 적 인 절차:SQL Server 2008 R2:error 26 원 격 연결 을 여 는 상세 한 출처 참조:SQL Server 2008 R2:error 26 원 격 연결 열기 상세 설명(2.context.Request 등 은 IRequiresSession State 인 터 페 이 스 를 분석 해 야 합 니 다.

좋은 웹페이지 즐겨찾기