我正在尝试使用System.DirectoryServices.AccountManagment确定用户是否是给定组的成员.
我可以实例化PrincipalContext如下:
PrincipalContext pc = new PrincipalContext(ContextType.Domain)
接下来,我试着抓住一个校长:
using (PrincipalContext pc = new PrincipalContext(ContextType.Domain))
{
GroupPrincipal group = GroupPrincipal.FindByIdentity(pc, "MYDOMAIN\somegroup");
// snip: exception thrown by line above.
}
Run Code Online (Sandbox Code Playgroud)
以上和UserPrincipal.FindByIdentity用户SAM都抛出DirectoryServicesCOMException:"登录失败:未知用户名或密码错误"
我已经尝试将完整的SAMAccountName传递给FindByIdentity(以MYDOMAIN \用户名的形式)或只是用户名而行为没有变化.我已尝试使用其他凭据HostingEnvironment.Impersonate和SPSecurity.RunWithElevatedPrivileges方法执行代码,并且也会遇到相同的结果.
我还尝试使用域名实例化我的上下文:
Principal Context pc = new PrincipalContext(ContextType.Domain, "MYDOMAIN");
这引发了PrincipalServerDownException:"无法联系到服务器."
我正在研究一台相当硬化的服务器.我没有锁定系统,所以我不确定它到底做了什么.如果我需要为我的池标识用户或域安全策略分配凭据以使这些凭据有效,我可以相应地配置域.是否有任何设置会阻止我的代码运行?我在代码本身中遗漏了什么吗?这在SharePoint网站中是不可能的吗?
编辑:经过进一步测试,我的代码在面向.NET 4.0的控制台应用程序中测试时正常运行.我针对不同的框架,因为在针对.NET 3.5出于某种原因我没有在控制台应用程序中使用AccountManagement.
using (PrincipalContext pc = new PrincipalContext(ContextType.Domain))
using (UserPrincipal adUser = UserPrincipal.FindByIdentity(pc, "MYDOMAIN\joe.user"))
using (GroupPrincipal adGroup …Run Code Online (Sandbox Code Playgroud) 在test.hs中,我有:
doubleMe x = x + x
Run Code Online (Sandbox Code Playgroud)
在ghci中,我键入:
Prelude> :l test
[1 of 1] Compiling Main ( test.hs, interpreted )
Ok, modules loaded: Main.
*Main> doubleMe 9
<interactive>:1:0: Not in scope: `doubleMe'
*Main>
Run Code Online (Sandbox Code Playgroud)
为什么?怎么修?
我见过的函数依赖的例子归结为映射container -> element和arguments -> result(如Mult Matrix Vector Vector).它们似乎用类型函数表达得更好.在数据库理论中,更复杂的关系被认为不是这种形式(如a -> b, b -> a).
是否存在使用类型函数无法很好地编写Haskell中FD的使用示例?
我注意到Writer m和Either emonad 之间存在双重关系.如果m是幺半群,那么
unit :: () -> m
join :: (m,m) -> m
Run Code Online (Sandbox Code Playgroud)
可以用来形成一个monad:
return is composition: a -> ((),a) -> (m,a)
join is composition: (m,(m,a)) -> ((m,m),a) -> (m,a)
Run Code Online (Sandbox Code Playgroud)
()的双重是Void(空类型),产品的双重是副产品.每种类型e都可以给出"comonoid"结构:
unit :: Void -> e
join :: Either e e -> e
Run Code Online (Sandbox Code Playgroud)
以明显的方式.现在,
return is composition: a -> Either Void a -> Either e a
join is composition: Either e (Either e a) -> Either (Either e e) a -> Either e a
Run Code Online (Sandbox Code Playgroud)
这是 …
当我执行从VSS新获取的代码时,以下是错误
[Macromedia] [SQLServer JDBC驱动程序] [SQLServer]对象'GetPSRreportStock',数据库'CGTSP_GET'的EXECUTE权限被拒绝,
90 : <cfprocparam type="in" cfsqltype="CF_SQL_INTEGER" dbvarname="@reportMonth" value="#xxMDB#">
91 : <cfprocparam type="in" cfsqltype="CF_SQL_INTEGER" dbvarname="@orderBy" value="#xxOBDB#">
92 : **<cfprocresult name="xxResult">**
93 : </cfstoredproc>
Run Code Online (Sandbox Code Playgroud)
我能得到一些安慰吗?
错误正在扼杀我.