当前位置:编程学习 > C#/ASP.NET >>

asp.net mvc4界面复用的问题

我现在的系统有3中用户可能登录查询:个人,单位,客服。
只允许个人查看的页面有5个,只允许单位查看的页面有5个,两者是没有交叉的。客服是10个页面都可以查看的。

问题是: 某些个人或者单位页面,在页面加载的时候就根据登录人cookie里的cardNo加载了部分数据,现在客服登录时的cookie里的cardNo是空的,因为她只有operatorID,这样的话,如果我想复用那5+5界面,就需要页面加载之前判断是客服与否,查询时客服需填入要查询的cardNo(新增一个div来填写cardNo),然后才可以查询。


我觉得这样设计比较麻烦,你们有更好的解决方案吗?  --------------------编程问答--------------------
引用 楼主 LCL_data 的回复:
我现在的系统有3中用户可能登录查询:个人,单位,客服。
只允许个人查看的页面有5个,只允许单位查看的页面有5个,两者是没有交叉的。客服是10个页面都可以查看的。

问题是: 某些个人或者单位页面,在页面加载的时候就根据登录人cookie里的cardNo加载了部分数据,现在客服登录时的cookie里的cardNo是空的,因为她只有operatorID,这样的话,如果我想复用那5+5界面,就需要页面加载之前判断是客服与否,查询时客服需填入要查询的cardNo(新增一个div来填写cardNo),然后才可以查询。


我觉得这样设计比较麻烦,你们有更好的解决方案吗? 


我觉的登录的时候,只需判断角色就可以了,一般初始化状态进去后在赋值!

个人角色1,单位2,客服3

这样登录的时候只需要判断属于那个角色就行,
1,2,3 其实我建议还是用数据库角色表里面自己设置的身份比较好!

进去后,在进行权限的赋值操作,

或者是 权限的操作事先写好,进去传入角色身份,即可!

不知道我说的你能听明白不? --------------------编程问答--------------------
引用 1 楼 hou306010849 的回复:
Quote: 引用 楼主 LCL_data 的回复:

我现在的系统有3中用户可能登录查询:个人,单位,客服。
只允许个人查看的页面有5个,只允许单位查看的页面有5个,两者是没有交叉的。客服是10个页面都可以查看的。

问题是: 某些个人或者单位页面,在页面加载的时候就根据登录人cookie里的cardNo加载了部分数据,现在客服登录时的cookie里的cardNo是空的,因为她只有operatorID,这样的话,如果我想复用那5+5界面,就需要页面加载之前判断是客服与否,查询时客服需填入要查询的cardNo(新增一个div来填写cardNo),然后才可以查询。


我觉得这样设计比较麻烦,你们有更好的解决方案吗? 


我觉的登录的时候,只需判断角色就可以了,一般初始化状态进去后在赋值!

个人角色1,单位2,客服3

这样登录的时候只需要判断属于那个角色就行,
1,2,3 其实我建议还是用数据库角色表里面自己设置的身份比较好!

进去后,在进行权限的赋值操作,

或者是 权限的操作事先写好,进去传入角色身份,即可!

不知道我说的你能听明白不?

权限管理是做好了的,没有权限的用户是登陆不进去的。
根据你的回帖意思是: 加载数据与否也根据登录人的权限来判断,对吧? --------------------编程问答-------------------- 根据用户角色来对页面数据进行处理。 加载的数据肯定是根据登录人的权限来判断那 --------------------编程问答-------------------- 用局部视图啊。

每部分写好了,组合在一起就行了。 --------------------编程问答-------------------- MVC的控制器你还没有理解
分角色就行了 [Authorize(Roles="admin")] 主要是这个
1、
FormAuthService.SignIn(loginModel.UserName, PersistentCookie, new string[] { "user" });

2、
   [Authorize(Roles="admin")]
        public ActionResult Index()
        {
            ViewData["RecordCount"] = _repository._BookRepositories.GetBookCount();
            return View();
        }


public class FormAuthService
    {
        public static void SignIn(string userName, bool createPersistentCookie, IEnumerable<string> roles)
        {
            var str = string.Join(",", roles);
            var authTicket = new FormsAuthenticationTicket(
                1,
                userName,  //user id
                DateTime.Now,
                DateTime.Now.AddDays(30),  // expiry
                createPersistentCookie,
                str,
                "/");
            var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, FormsAuthentication.Encrypt(authTicket));
         
            if (authTicket.IsPersistent){
                cookie.Expires = authTicket.Expiration;
            }
            HttpContext.Current.Response.Cookies.Add(cookie);
        }

        public static void SignOut()
        {
            FormsAuthentication.SignOut();
        }
    }
--------------------编程问答--------------------
引用 5 楼 zhuankeshumo 的回复:
MVC的控制器你还没有理解
分角色就行了 [Authorize(Roles="admin")] 主要是这个
1、
FormAuthService.SignIn(loginModel.UserName, PersistentCookie, new string[] { "user" });

2、
   [Authorize(Roles="admin")]
        public ActionResult Index()
        {
            ViewData["RecordCount"] = _repository._BookRepositories.GetBookCount();
            return View();
        }


public class FormAuthService
    {
        public static void SignIn(string userName, bool createPersistentCookie, IEnumerable<string> roles)
        {
            var str = string.Join(",", roles);
            var authTicket = new FormsAuthenticationTicket(
                1,
                userName,  //user id
                DateTime.Now,
                DateTime.Now.AddDays(30),  // expiry
                createPersistentCookie,
                str,
                "/");
            var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, FormsAuthentication.Encrypt(authTicket));
         
            if (authTicket.IsPersistent){
                cookie.Expires = authTicket.Expiration;
            }
            HttpContext.Current.Response.Cookies.Add(cookie);
        }

        public static void SignOut()
        {
            FormsAuthentication.SignOut();
        }
    }


很是收益,谢谢回复
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,