Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# AZMan:InitializeClientContextFromName失败,带“0”;值不在预期范围内。”;_C#_.net 4.0_Azman - Fatal编程技术网

C# AZMan:InitializeClientContextFromName失败,带“0”;值不在预期范围内。”;

C# AZMan:InitializeClientContextFromName失败,带“0”;值不在预期范围内。”;,c#,.net-4.0,azman,C#,.net 4.0,Azman,以下代码在InitializeClientContextFromName处失败,带有“值不在预期范围内”。它在其他开发人员的计算机上工作 有什么线索我应该跟进吗?我对阿兹曼一点也不熟悉 private List<string> SyncAzManRoles(ActiveDirectoryMembershipProvider provider) { List<string> userAzManRoles = new List<strin

以下代码在InitializeClientContextFromName处失败,带有“值不在预期范围内”。它在其他开发人员的计算机上工作

有什么线索我应该跟进吗?我对阿兹曼一点也不熟悉

    private List<string> SyncAzManRoles(ActiveDirectoryMembershipProvider provider)
    {
        List<string> userAzManRoles = new List<string>();

        AzAuthorizationStoreClass store = new AzAuthorizationStoreClass();
        if (store == null)
        {
            AuthTrace("Azman store is not available");
            throw new InvalidOperationException("The azman store is not available");
        }
        store.Initialize(0, ConfigurationManager.ConnectionStrings
                    ["LocalPolicyStore"].ConnectionString, null);

        IAzApplication3 app = store.OpenApplication(Security.ApplicationName, null) as IAzApplication3;
        if (app == null)
        {
            AuthTrace("Azman application is not available");
            throw new InvalidOperationException("The azman application is not available");
        }

        IAzClientContext3 clientContext = null;
        try
        {
            clientContext = app.InitializeClientContextFromName(_username,
                provider.Name, null) as IAzClientContext3;
private List SyncAzManRoles(ActiveDirectoryMembershipProvider)
{
List userAzManRoles=new List();
AzaAuthorizationStoreClass存储=新的AzaAuthorizationStoreClass();
if(store==null)
{
AuthTrace(“Azman商店不可用”);
抛出新的InvalidOperationException(“azman商店不可用”);
}
store.Initialize(0,ConfigurationManager.ConnectionString)
[“LocalPolicyStore”].ConnectionString,null);
IAzApplication3 app=store.OpenApplication(Security.ApplicationName,null)作为IAzApplication3;
如果(app==null)
{
AuthTrace(“Azman应用程序不可用”);
抛出新的InvalidOperationException(“azman应用程序不可用”);
}
IAzClientContext3 clientContext=null;
尝试
{
clientContext=app.InitializeClientContextFromName(_用户名,
provider.Name,null)作为IAzClientContext3;

我通过使用方法而不是InitializeClientContextFromName解决了这个问题

在我的例子中,它是在ASP.NET Web应用程序中使用的

ulong token = 0;

var principal = User as WindowsPrincipal;
if ( principal != null )
{
    var identity = (WindowsIdentity) principal.Identity;

    ViewBag.Identity = identity.Name;
    token = (ulong) identity.Token.ToInt64();
}

// Server 2008 or Vista required to use IAzClientContext3
// Using token 0 uses app pool identity
var _clientContext = (IAzClientContext3) _azManApp.InitializeClientContextFromToken( token );
如果将零作为令牌值传入,则会导致使用应用程序池标识的web应用程序。否则,如果用户使用WindowsIdentity登录,则令牌属性的值也会起作用


对于桌面应用程序,您可能只需使用零令牌即可使用当前用户的身份。

遇到同样的问题,希望找到答案!