小议CslaIdentity的安全性
来源:互联网 发布:如何下载mysql数据库 编辑:程序博客网 时间:2024/04/29 20:17
/// <summary> /// 客户端登录类 /// </summary> public class OEAPrincipal : CslaPrincipal { private OEAPrincipal(IIdentity identity) : base(identity) { } public static bool Login(string username, string password) { var identity = OEAIdentity.GetIdentity(username, password); if (identity.IsAuthenticated) { OEAPrincipal principal = new OEAPrincipal(identity); Csla.ApplicationContext.User = principal; return true; } else { Csla.ApplicationContext.User = new UnauthenticatedPrincipal(); return false; } } public static void Logout() { Csla.ApplicationContext.User = new UnauthenticatedPrincipal(); } }
public sealed class OEAIdentity : CslaIdentity { #region Factory Methods internal static OEAIdentity GetIdentity(string username, string password) { //如果注入以下代码,哪么问题就严重了 //var hackuser = DataPortal.Fetch<OEAIdentity>(new UsernameCriteria(username, password)); //hackuser.Roles.Add("SuperMan"); //return hackuser; return DataPortal.Fetch<OEAIdentity>(new UsernameCriteria(username, password)); }}
因为以上的两个类都必需运行在客户端,所以存在代码被非法修改的可能。如果客户端在OEAIdentity中注入了代码,哪么问题就严重了。
目前好的解决方案是在服务端建立登录用户的列表,并分配唯一的Guid值,每次检查权限时,都在服务端的用户列表中进行检索。
- 小议CslaIdentity的安全性
- 小议:程序员的职业规划
- 小议radio的用法
- 小议团队的构成
- “视图的功能” 小议
- 小议《三国志》“裴注”的真实性
- 小议Java类的设计
- 小议Oracle索引的使用
- 小议Server2000的及管理
- 小议MS2000的及管理
- 小议firefox的HTML Validator
- 内存的分配方式小议
- 小议hibernate的merge用法
- 小议操作系统里的锁
- 小议《蚁族的奋斗》
- 小议指向指针的指针
- 小议关键词的位置排放
- 小议中国人的乡土情结
- Windows Phone7 XNA 使用中文 很轻松简单~
- 试证某曲面上任何点处的切平面在各坐标轴上的截距之和等于a
- Embedded Real-Time OS for Avionics
- CAS认证
- C语言中指针与地址
- 小议CslaIdentity的安全性
- How to Package Python Scripts
- 编译Rob Hess基于OpenCV的SIFT算法的C语言实现
- 暴风影音笔试题 2014 武汉站
- 房间安排
- C#中字符编码:sql语句中包含中文字符转换为utf8编码
- nyoj 2-括号匹配
- [BBC纪录片][2009][自然界最惊异的事件][Nature's.Most.Amazing.Events][中英字幕][蓝光720P高清][全6集][17.77GB]
- 美语音标学习总结