asp.net mvc4界面复用的问题
我现在的系统有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();
}
}
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