ユーザープリンシパルをWeb.Utility.UserPrincipalExに暗黙的に変換することはできません

Ctrl_Alt_Defeat

ActiveDirectoryから拡張プロパティを取得しようとしています。だから私は以下のような追加のクラスを持っています:

namespace MyProject.Web.Utility
[DirectoryRdnPrefix("CN")]
[DirectoryObjectClass("Person")]
public class UserPrincipalEx : UserPrincipal
{
// Inplement the constructor using the base class constructor. 
public UserPrincipalEx(PrincipalContext context)
    : base(context)
{ }

// Implement the constructor with initialization parameters.    
public UserPrincipalEx(PrincipalContext context,
                     string samAccountName,
                     string password,
                     bool enabled)
    : base(context, samAccountName, password, enabled)
{ }

// Create the "extensionAttribute2" property.    
[DirectoryProperty("extensionAttribute2")]
public string ExtensionAttribute2
{
    get
    {
        if (ExtensionGet("extensionAttribute2").Length != 1)
            return string.Empty;

        return (string)ExtensionGet("extensionAttribute2")[0];
    }
    set { ExtensionSet("extensionAttribute2", value); }
}
}

私はこれを(同じ名前空間の)別のクラスで以下のように使用しようとしました:

    using (PrincipalContext ctx = new PrincipalContext(ContextType.Domain))
    {
        // Search the directory for the new object. 
        UserPrincipalEx inetPerson = UserPrincipalEx.FindByIdentity(ctx, identityName);

        string test = inetPerson.ExtensionAttribute2;

        // you can easily access the ExtensionAttribute2 now
        string department = inetPerson.ExtensionAttribute2;
    } 

ただし、これは以下のエラーをスローします-UserPrincipalExをUserPrincipalにキャストしようとしましたが、これも機能しませんでした-機能しなかったbase.FindByIdentityを呼び出そうとしました-これを解決するにはどうすればよいですか?

Error   81  Cannot implicitly convert type 'System.DirectoryServices.AccountManagement.UserPrincipal' to 'MyProj.Web.Utility.UserPrincipalEx'. An explicit conversion exists (are you missing a cast?)  
Ctrl_Alt_Defeat

わかりました-今朝飲んだコーヒーが足りません-UserPrincipalExクラスに自分のバージョンのFindByIdentityを実装するのを忘れました。

    public static new UserPrincipalEx FindByIdentity(PrincipalContext context,
                                                   string identityValue)
    {
        return (UserPrincipalEx)FindByIdentityWithType(context,
                                                     typeof(UserPrincipalEx),
                                                     identityValue);
    }

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

タイプ***を****に暗黙的に変換することはできません

分類Dev

型ResponseBaseを暗黙的にResponseに変換することはできません

分類Dev

文字列をboolに暗黙的に変換することはできません

分類Dev

文字列を暗黙的にviewmodelに変換することはできません

分類Dev

型をint []に暗黙的に変換することはできません

分類Dev

type <SubMenu>をSubMenuに暗黙的に変換することはできません

分類Dev

型をint []に暗黙的に変換することはできません

分類Dev

intをint []に暗黙的に変換することはできません

分類Dev

型エラーを暗黙的に変換することはできません

分類Dev

タイプを暗黙的に変換することはできません

分類Dev

SymmetrySecurityKeyタイプを暗黙的に変換することはできません

分類Dev

型customBcustomCを暗黙的に変換することはできません

分類Dev

IQueryableを暗黙的に変換することはできません

分類Dev

文字列を暗黙的に変換することはできません-C#

分類Dev

タイプ「void」を「文字列」Webサービスに暗黙的に変換することはできません

分類Dev

タイプ「double」を「int」に暗黙的に変換することはできません。-エラー

分類Dev

型デリゲートを文字列に暗黙的に変換することはできません

分類Dev

タイプ「文字列」を「System.Web.UI.WebControls.DropDownList」に暗黙的に変換することはできません

分類Dev

Acumatica条件付き更新-タイプ「string」を「bool」に暗黙的に変換することはできません

分類Dev

分解可能な型をタプルに暗黙的に変換することはできません

分類Dev

インターフェイスで型を暗黙的に変換することはできません

分類Dev

2つの整数でタイプ「int」を「string」に暗黙的に変換することはできません

分類Dev

エラー 2 型 'int' を 'string' に暗黙的に変換することはできません c#

分類Dev

ASPXRicheditは、byte []をSystem.IO.Streamに暗黙的に変換することはできません

分類Dev

匿名タイプ#1 []を匿名タイプ#2 []に暗黙的に変換することはできません

分類Dev

C#で型文字列をintに暗黙的に変換することはできません

分類Dev

C#で文字列をintに暗黙的に変換することはできません

分類Dev

'System.TimeSpan?'を暗黙的に変換することはできません .HasValue条件で「System.TimeSpan」に

分類Dev

JavascriptSerializerを使用して型文字列をリストに暗黙的に変換することはできません

Related 関連記事

  1. 1

    タイプ***を****に暗黙的に変換することはできません

  2. 2

    型ResponseBaseを暗黙的にResponseに変換することはできません

  3. 3

    文字列をboolに暗黙的に変換することはできません

  4. 4

    文字列を暗黙的にviewmodelに変換することはできません

  5. 5

    型をint []に暗黙的に変換することはできません

  6. 6

    type <SubMenu>をSubMenuに暗黙的に変換することはできません

  7. 7

    型をint []に暗黙的に変換することはできません

  8. 8

    intをint []に暗黙的に変換することはできません

  9. 9

    型エラーを暗黙的に変換することはできません

  10. 10

    タイプを暗黙的に変換することはできません

  11. 11

    SymmetrySecurityKeyタイプを暗黙的に変換することはできません

  12. 12

    型customBcustomCを暗黙的に変換することはできません

  13. 13

    IQueryableを暗黙的に変換することはできません

  14. 14

    文字列を暗黙的に変換することはできません-C#

  15. 15

    タイプ「void」を「文字列」Webサービスに暗黙的に変換することはできません

  16. 16

    タイプ「double」を「int」に暗黙的に変換することはできません。-エラー

  17. 17

    型デリゲートを文字列に暗黙的に変換することはできません

  18. 18

    タイプ「文字列」を「System.Web.UI.WebControls.DropDownList」に暗黙的に変換することはできません

  19. 19

    Acumatica条件付き更新-タイプ「string」を「bool」に暗黙的に変換することはできません

  20. 20

    分解可能な型をタプルに暗黙的に変換することはできません

  21. 21

    インターフェイスで型を暗黙的に変換することはできません

  22. 22

    2つの整数でタイプ「int」を「string」に暗黙的に変換することはできません

  23. 23

    エラー 2 型 'int' を 'string' に暗黙的に変換することはできません c#

  24. 24

    ASPXRicheditは、byte []をSystem.IO.Streamに暗黙的に変換することはできません

  25. 25

    匿名タイプ#1 []を匿名タイプ#2 []に暗黙的に変換することはできません

  26. 26

    C#で型文字列をintに暗黙的に変換することはできません

  27. 27

    C#で文字列をintに暗黙的に変換することはできません

  28. 28

    'System.TimeSpan?'を暗黙的に変換することはできません .HasValue条件で「System.TimeSpan」に

  29. 29

    JavascriptSerializerを使用して型文字列をリストに暗黙的に変換することはできません

ホットタグ

アーカイブ