读书人

祝大家五一节都快乐!提两个有关问题

发布时间: 2012-02-12 17:16:33 作者: rapoo

祝大家五一节都快乐!提两个问题,在aps.net中的权限及图片的问题!
本人asp.net新手,有几个问题没有搞明白:

1、我的程序里,对用户的权限设置保存在数据库中,这样我如何保证用户登录时能使用所对应的权限?用户的登录信息保存在cookie里吗,有什么好的方式

2、图片也保存在数据库里,在asp.net(c#)的ImageField里,好象不能直接对应到数据库,我的一条记录有多幅图片,我怎么样才能在同一个页面里显示一条完整的记录,包括文本信息和多幅图片?

请各位大侠能说的清楚一些,我查了一些帖子,都没有看明白,谢谢

[解决办法]
登录的时候读出来
放到Session或者Cookie
进行操作时候
判断是否具有权限
然后进行操作

2;先读出来 然后自己使用template控制DataList显示
[解决办法]
帮顶
[解决办法]
登陆信息放在Session内,在判断权限。
第2个问题没太看明白,是一条记录内有多个图片吗?那直接和文本一起存进数据库啊,图片的位置存的是HTML代码: <img src= "http://www.sohu.com/1.gif ">
[解决办法]
直接在DataList里调好模板
[解决办法]
1.在用户登录时,从数据库中取相应权限
2.图片要用二进制的方式读取
[解决办法]
http://erpcrm.cnblogs.com/archive/2005/09/14/234800.html
http://rainlake.cnblogs.com/archive/2005/09/01/227480.html
http://rainlake.cnblogs.com/archive/2005/09/02/229105.html

[解决办法]
图片用二进制的方式存取比较好
权限在设计数据库的时候就应该设计好,然后从数据库里读取用户的时候就好判断了
[解决办法]
1、用户登录时,从数据库中取出权限,用Session或者Cookie保存


[解决办法]
顶一把
[解决办法]
用户的权限一定不能用Cookie保存,可以考虑使用Session,Cookie是在客户端保存用户信息的,肯定不够安全,除非是一些不重要的信息可以保存在cookie中

图片用二进制存放的缺点是,当你插入或者更新图片的内容时,如果图片比较大,比较耗费内存,如果不是很重要,数据库就保存图片的路径也无不可
[解决办法]
MARK

[解决办法]

下面的代码实现从SQL Server数据库提取图片并显示在DataGrid的功能。

<%@ Page Language= "vb " %>
<%@ Import Namespace= "System.Data " %>
<%@ Import Namespace= "System.Data.SqlClient " %>
<html>
<head>
<title> 用户列表 </title>
<script runat=server>
Sub Page_Load(sender As Object, e As EventArgs)
If Not Page.IsPostBack Then
BindGrid()
End If
End Sub

Private Sub BindGrid()
Dim strCnn As String = "Data Source=.;Initial Catalog=mxh;User Id=sa;Password=; "
Dim myConnection As SqlConnection = New SqlConnection(strCnn)
Dim myCommand As SqlCommand = New SqlCommand( "SELECT * FROM Person ", myConnection)
myCommand.CommandType = CommandType.Text
Try
myConnection.Open()
DG_Persons.DataSource = myCommand.ExecuteReader(CommandBehavior.CloseConnection)
DG_Persons.DataBind()
Catch SQLexc As SqlException
Response.Write( "Error occured while Generating Data. Error is " & SQLexc.ToString())
End Try
End Sub

Function FormatURL(strArgument) as String
Return ( "ReadImage.aspx?id= " & strArgument)
End Function
</script>
</head>
<body style= "font: 9pt 宋体 ">
<h3 align=center> 从数据库中取得照片并显示在DataGrid中 </h3>
<form id= "Form1 " method= "post " runat= "server ">
<asp:DataGrid ID= "DG_Persons " AutoGenerateColumns=False Width= "99% "


HeaderStyle-BackColor= "#ff0000 " HeaderStyle-Font-Bold= "True " HeaderStyle-ForeColor= "#ffffff "
ItemStyle-BackColor=Beige BorderColor= "#000000 " Runat=server HeaderStyle-HorizontalAlign=Center>
<Columns>
<asp:TemplateColumn HeaderText= "姓名 ">
<ItemTemplate>
<asp:Label Runat= "server " Text= ' <%# DataBinder.Eval(Container.DataItem, "PersonName ") %> ' ID= "Label1 "/>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText= "电子邮件 ">
<ItemTemplate>
<asp:Label Runat= "server " Text= ' <%# DataBinder.Eval(Container.DataItem, "PersonEmail ") %> ' ID= "Label2 "/>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText= "性别 ">
<ItemTemplate>
<asp:Label Runat= "server " Text= ' <%# DataBinder.Eval(Container.DataItem, "PersonSex ") %> ' ID= "Label3 "/>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText= "出生日期 ">
<ItemTemplate>
<asp:Label Runat= "server "
Text= ' <%# DataBinder.Eval(Container.DataItem, "PersonDOB ") %> ' ID= "Label4 "/>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText= "照片 ">
<ItemTemplate>
<asp:Image Runat=server ID= "Image1 " Width= "150 " Height= "125 "
ImageUrl= ' <%# FormatURL(DataBinder.Eval(Container.DataItem, "PersonID ")) %> ' />
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>
</form>
</body>
</html>

ReadImage.aspx

<%@ Page Language= "vb " %>
<%@ Import Namespace= "System.Data " %>
<%@ Import Namespace= "System.Data.SqlClient " %>
<HTML>
<HEAD>
<script runat=server>
Public Sub Page_Load(sender As Object, e As EventArgs)
Dim strImageID as String = Request.QueryString( "id ")
Dim myConnection As New SqlConnection( "Data Source=.;Initial Catalog=mxh;User Id=sa;Password=; ")
Dim myCommand As New SqlCommand( "Select PersonImageType, PersonImage from Person Where PersonID= " _
+ strImageID, myConnection)

Try
myConnection.Open()
Dim myDataReader as SqlDataReader
myDataReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection)
Do While (myDataReader.Read())
Response.ContentType = myDataReader.Item( "PersonImageType ")
Response.BinaryWrite(myDataReader.Item( "PersonImage "))
Loop
myConnection.Close()
Catch SQLexc As SqlException
End Try
End Sub
</script>
</HEAD>
<body>
<form runat= "server " ID= "Form1 "> </form>
</body>
</HTML>

读书人网 >asp.net

热点推荐