小编Int*_*gue的帖子

如何使用ASP.NET保护对SWF文件的访问?

我们有一个swf文件,我们想要保护并仅供授权用户使用.

我将文件嵌入到aspx页面中并且工作正常,因为ASP.NET处理aspx页面,我可以使用ASP.NET授权功能,并且在web.config中限制对roles ="AllowedUsers"的访问.

然而,智能用户仍然可以直接访问该文件,例如www.mysite/flash.swf.我们希望这种访问安全.

任何帮助将不胜感激!

谢谢!

asp.net security iis flash

6
推荐指数
1
解决办法
4097
查看次数

如何检查用户是属于AD组还是嵌套组?

我有一个使用Windows身份验证的ASP.NET 3.5应用程序并实现我们自己的RoleProvider.

问题是我们想要将对一组页面的访问限制为几千个用户,而不是逐个输入所有这些页面,我们发现它们属于一个AD组.

答案很简单,如果我们检查特定用户的成员资格的公共组是它的直接成员,但我遇到的问题是,如果该组是另一个组的成员,然后是另一个组的成员,那么我的代码总是返回false.

例如:假设我们要检查User是否是E组的成员,但是User不是*E"的直接成员,她是"A"的成员,其中"B"的成员确实是其成员E,因此用户是*E的成员

我们的解决方案之一非常缓慢,尽管它给出了正确的答案

using (var context = new PrincipalContext(ContextType.Domain))
  {
    using (var group = GroupPrincipal.FindByIdentity(context, IdentityType.Name, "DL-COOL-USERS"))
    {
      var users = group.GetMembers(true); // recursively enumerate

      return users.Any(a => a.Name == "userName");
    }
  }
Run Code Online (Sandbox Code Playgroud)

原始解决方案以及我尝试使用.NET 3.5 System.DirectoryServices.AccountManagement工作,当用户是相关组的直接成员时,它确实有效,如下所示:

public bool IsUserInGroup(string userName, string groupName)
{
  var cxt = new PrincipalContext(ContextType.Domain, "DOMAIN");
  var user = UserPrincipal.FindByIdentity(cxt, IdentityType.SamAccountName, userName);

 if (user == null)
  {       
    return false;
  }


  var group = GroupPrincipal.FindByIdentity(cxt, …
Run Code Online (Sandbox Code Playgroud)

.net asp.net active-directory windows-authentication

5
推荐指数
1
解决办法
7068
查看次数