一个基于asp和C#的网站,已经上线,为什么小弟我人工向数据库中user的表格中增加用户,网站就不认呢
一个基于asp和C#的网站,已经上线,为什么我人工向数据库中user的表格中增加用户,网站就不认呢?
数据库是MS sql server 2008R2, 现在客户需要增加两个管理员账户,我也在数据库的user的表格中根据以前管理员账户的格式信息手工添加了两个账户信息。但从网站登录后,登录页面转向一个非常简单的页面(这个页面是guest用户的登录页面),而不是转向管理员的页面?总之,网站似乎不认识这个账户,为什么呢?
是不是修改数据库还要重新编译呢?还是什么其他原因呢?
------解决方案--------------------
要么你程序写的有漏洞,要么看看是否有缓存机制,将之前的数据做了缓存,并没有获取最新数据
------解决方案--------------------
很有可能你的程序不是简单的就读了user那一张表,是否还有权限(绑定菜单功能之类的)。然后程序中加载时(sql关联查询),并没有查到这个用户(sql关联查询时过滤了你添加的这个账号)。
------解决方案--------------------
从你截的图上的代码来看,用的是Entity Framework(EF)操作数据库的,是微软C#的ORM(类似于java中的hibernate)。你可以把光标放到MOREntities上面,按F12定位到MOREntities的定义部分。
http://blog.****.net/chinacsharper/article/details/9368855
------解决方案--------------------
可以单步调试下了。。。
------解决方案--------------------
同意楼上的观点,你在Login的方法主体内调试下,或者查询下所有的User,也可以Console到输出窗口,首先看看数据是否存在,其次看看你添加的数据和其他正常的数据有什么不一样的地方
------解决方案--------------------
看一下user表里的是否有IsAdmin及对应的值。
------解决方案--------------------
一个帐号和密码,你竟然得到了两个人的信息,说明你的帐号和密码信息重复了,如果你使用First得到的第一条数据估计就是那个IsAdmin为false的那条数据
------解决方案--------------------
你应该也注意到这段了吧!关键方法就是StructuralObject.SetValidValue,研究一下吧!
数据库是MS sql server 2008R2, 现在客户需要增加两个管理员账户,我也在数据库的user的表格中根据以前管理员账户的格式信息手工添加了两个账户信息。但从网站登录后,登录页面转向一个非常简单的页面(这个页面是guest用户的登录页面),而不是转向管理员的页面?总之,网站似乎不认识这个账户,为什么呢?
是不是修改数据库还要重新编译呢?还是什么其他原因呢?
------解决方案--------------------
要么你程序写的有漏洞,要么看看是否有缓存机制,将之前的数据做了缓存,并没有获取最新数据
------解决方案--------------------
很有可能你的程序不是简单的就读了user那一张表,是否还有权限(绑定菜单功能之类的)。然后程序中加载时(sql关联查询),并没有查到这个用户(sql关联查询时过滤了你添加的这个账号)。
------解决方案--------------------
从你截的图上的代码来看,用的是Entity Framework(EF)操作数据库的,是微软C#的ORM(类似于java中的hibernate)。你可以把光标放到MOREntities上面,按F12定位到MOREntities的定义部分。
http://blog.****.net/chinacsharper/article/details/9368855
------解决方案--------------------
可以单步调试下了。。。
------解决方案--------------------
同意楼上的观点,你在Login的方法主体内调试下,或者查询下所有的User,也可以Console到输出窗口,首先看看数据是否存在,其次看看你添加的数据和其他正常的数据有什么不一样的地方
------解决方案--------------------
看一下user表里的是否有IsAdmin及对应的值。
------解决方案--------------------
一个帐号和密码,你竟然得到了两个人的信息,说明你的帐号和密码信息重复了,如果你使用First得到的第一条数据估计就是那个IsAdmin为false的那条数据
------解决方案--------------------
/// <summary>
/// No Metadata Documentation available.
/// </summary>
[EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]
[DataMemberAttribute()]
public global::System.Boolean IsAdmin
{
get
{
return _IsAdmin;
}
set
{
OnIsAdminChanging(value);
ReportPropertyChanging("IsAdmin");
_IsAdmin = StructuralObject.SetValidValue(value);
ReportPropertyChanged("IsAdmin");
OnIsAdminChanged();
}
}
private global::System.Boolean _IsAdmin;
partial void OnIsAdminChanging(global::System.Boolean value);
partial void OnIsAdminChanged();
你应该也注意到这段了吧!关键方法就是StructuralObject.SetValidValue,研究一下吧!