首页 > 代码库 > JS 端判断当前用户是否在某个SharePoint group (包含用户在AD组,然后将AD组加入到SP的组的情况)
JS 端判断当前用户是否在某个SharePoint group (包含用户在AD组,然后将AD组加入到SP的组的情况)
本文讲述 JS 端如何判断当前用户是否在某个SharePoint group (包含用户在AD组,然后将AD组加入到SP的组的情况).
笔者曾经总结过JS端判断用户权限的三种方式: http://blog.csdn.net/abrahamcheng/article/details/17447479
但是实际需求中判断某个用户是否在哪个组是非常常见的,正如前面文章中所说,JS端判断当前用户是否在哪个组,只适用用于将用户直接加到SP group这种情况,针对用户在AD组,然后将AD组加入到SP的组的情况却无能为力。但现实需求中都是将用户加到AD组中,然后将AD组加入到SP group 中。怎么解决这个问题呢? 本文将给出一个解决方案。
首先从后端,使用C#是可以判断当前用户是否在某个SP group 中(包含用户在AD组,然后将AD组加入到SP的组的情况):
public static bool IsCurrentUserInGroup(string groupName) { SPGroup group = null; bool result = false; SPWeb web = SPContext.Current.Web; if (!string.IsNullOrWhiteSpace(groupName)) { try { group = web.Groups[groupName]; } catch (Exception ex) { Helper.WriteException(ex, "IsCurrentUserInGroup"); try { group = web.SiteGroups[groupName]; } catch (Exception innerEx) { Helper.WriteException(innerEx, "IsCurrentUserInGroup"); } } } if (null == group) { result = false; } else { result = web.IsCurrentUserMemberOfGroup(group.ID) || group.ContainsCurrentUser; } return result; }那么就可以添加一个ashx来调用后台的C#代码:
public partial class IsCurrentUserInGroup : IHttpHandler { public bool IsReusable { get { return true; } } public void ProcessRequest(HttpContext context) { JavaScriptSerializer jsonSerializer = new JavaScriptSerializer(); context.Response.ContentType = "application/json"; var jsonResult = new JosnResult(); string group = context.Request.QueryString.Get("group"); try { if (string.IsNullOrWhiteSpace(group)) { jsonResult.Data.Add(false); } else { jsonResult.Data.Add(Helper.IsCurrentUserInGroup(group)); } } catch (Exception ex) { jsonResult.ErrorMessage = string.Format("Error message:{0}, group name:{1}", ex.Message,group); Helper.WriteException(ex, "IsCurrentUserInGroup.ProcessRequest"); } context.Response.Write(jsonSerializer.Serialize(jsonResult)); } }
JosnResult 定义如下(用于传递结果给前台):
public class JosnResult { public string ErrorMessage { get; set; } public List<object> Data { get; set; } public string Position {get; set;} public JosnResult() { this.Data = http://www.mamicode.com/new List
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。