请教实际项目中遇到的两个问题!

indusl 2008-03-28 05:43:57
1:项目中我们用membership管理用户和群组,进而设置每个文件夹下的web.config,以决定那些用户和群组可以访问这个文件夹里面的内容,一般情况下这样设置:
<authorization>
<allow role="admin">
<deny user="*">
</authorization>

问题就是这个role还有user我们事先要写好在web.config中,也就是role的名字是固定的,缺乏灵活性,如何动态设置呢?因为有些后台程序需要动态设置群组名,以及他的访问权限。不知道您是怎么解决的?

2:第二个问题,是我们利用程序语言在page_load时间中设置gridview绑定一个到SqlDataSource。但是我发现原本的编辑,删除功能点了没反应。而我们直接利用拖拉控件进而设置sqldatasource控件,也就是不编写任何程序代码,反而是正常的,请问这到底是怎么回事呢?
...全文
81 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
firein 2008-04-03
  • 打赏
  • 举报
回复
学习
tangqiaojie 2008-04-03
  • 打赏
  • 举报
回复
是不是事件没有添加啊?
iuhxq 2008-04-03
  • 打赏
  • 举报
回复
AuthenticateRequest
在AuthenticateRequest里应该可以实现。

但1楼的方法不对,1楼的是动态设置用户所在的组,不是给目录分配组权限。
lishuai686 2008-03-30
  • 打赏
  • 举报
回复
这是一个全手动操作数据库的例子,可能对你有帮助:(用的ACC数据库,如果是别的话,可以改连接代码)
1:插入数据:
void ryqx(object serder,EventArgs e)
{
int a1;
String a2,a9,a3,a4,a5,a6,a7,a8,a10,a11,a12,a13,x;
a1=Convert.ToInt32(TextBox2.Text);
a2=Convert.ToString(TextBox1.Text);
a3=Convert.ToString(TextBox5.Text);
a4=Convert.ToString(TextBox9.Text);
a5=Convert.ToString(TextBox3.Text);
a6=Convert.ToString(TextBox4.Text);
a7=Convert.ToString(TextBox6.Text);

a8=li(Convert.ToDecimal(TextBox8.Text));

a9=Convert.ToString(TextBox8.Text);
a10=Convert.ToString(TextBox10.Text);
a11=Convert.ToString(TextBox11.Text);
a12=Convert.ToString(TextBox12.Text);
a13=Convert.ToString(TextBox13.Text);
Label5.Text=a8;
x="insert into zdbx values('"+ a1 +"','"+ a2 +"','"+ a3 +"','"+ a4 +"','"+ a5 +"','"+ a6 +"','"+ a7 +"','"+ a8 +"','"+ a9 +"','"+ a10 +"','"+ a11 +"','"+ a12 +"','"+ a13 +"')";
OleDbConnection sqlcon1=new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+HttpContext.Current.Server.MapPath("ask.mdb"));
sqlcon1.Open();
OleDbCommand sqlcommand=new OleDbCommand();
sqlcommand.Connection=sqlcon1;
sqlcommand.CommandText=x;
sqlcommand.ExecuteNonQuery();
sqlcon1.Close();
sqlcon1=null;

}
2.删除数据:
void ryqx(object serder,EventArgs e)
{int a;
String x;
a=Convert.ToInt32(TextBox2.Text);
x="delete from zdbx where 编号="+ a +"";
OleDbConnection sqlcon1=new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+HttpContext.Current.Server.MapPath("ask.mdb"));
sqlcon1.Open();
OleDbCommand sqlcommand=new OleDbCommand();
sqlcommand.Connection=sqlcon1;
sqlcommand.CommandText=x;
sqlcommand.ExecuteNonQuery();
sqlcon1.Close();
sqlcon1=null;
}
lishuai686 2008-03-30
  • 打赏
  • 举报
回复
这个问题肯定是在写代码的过程中有不对的地方,你可以不用任何控件,全用手写代码实现数据库的连接和操作,不就完了,很简单的。
HarleyTung 2008-03-28
  • 打赏
  • 举报
回复
1:在Global.asax

Sub Application_AuthenticateRequest(ByVal sender As Object, ByVal e As EventArgs)
if (not(HttpContext.Current.User is Nothing)) then
if HttpContext.Current.User.Identity.AuthenticationType = "Forms" then
Dim id as System.Web.Security.FormsIdentity
id = HttpContext.Current.User.Identity

Dim MyRoles(2) As String
MyRoles(0) = "Manager"
MyRoles(1) = "Admin"
HttpContext.Current.User = new System.Security.Principal.GenericPrincipal(id,MyRoles)
End if
End if
End sub


2:SqlDataSource 用法

<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:Pubs %>"
SelectCommand="SELECT [au_id], [au_lname], [au_fname], [state] FROM [authors]"
UpdateCommand="UPDATE [authors] SET [au_id] = @au_id, [au_lname] = @au_lname,
[au_fname] = @au_fname, [state] = @state WHERE [au_id] = @original_au_id"
DeleteCommand="DELETE FROM [authors] WHERE [au_id] = @original_au_id"/>

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧