自定义IsInRole for ASP.NET应用程序

时间:2010-06-15 09:21:13

标签: c# .net security

我可以将IsInRole与自定义对象一起使用吗? 就像我想只为Employee做一些操作,而其他只为Managers做。

我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:1)

是的,你可以:

var isMgr = User.IsInRole("Managers");
if(isMgr){
   DoManagerialWork();
}else{
   AccessDenied();
}

但你必须在你的(asp.net)应用程序中连接asp.net成员资格等。

答案 1 :(得分:1)

利用内置功能:

这是您在Windows应用程序中识别的方式

using System.Security.Principal;
... 
var currentUser = WindowsIdentity.GetCurrent();
var winPrincipal = new WindowsPrincipal(currentUser);

if(winPrincipal.IsInRole("Employees")) {
  // TODO: BANANAS
} else if (windPrincipal.IsInRole("Managers")) {
  // TODO: APPLES
}
...

这是您在ASP.NET中执行此操作的方式:

if(User.IsInRole("Employees")) {
  // TODO: BANANAS
} else if (User.IsInRole("Managers")) {
  // TODO: APPLES
}

BANANSAPPLES将是您的用户获得的内容; - )